-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathProgram.cs
More file actions
51 lines (46 loc) · 1.71 KB
/
Copy pathProgram.cs
File metadata and controls
51 lines (46 loc) · 1.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
using Quickstart.Common;
EnvFile.Load();
var examples = new Dictionary<string, Action<Grpc.Net.Client.GrpcChannel>>(StringComparer.OrdinalIgnoreCase)
{
["loyalty"] = channel => new QuickstartLoyalty.Membership().Quickstart(channel),
["coupons"] = channel => new QuickstartCoupons.Coupons().Quickstart(channel),
["tickets"] = channel => new QuickstartEventickets.EventTicket().QuickStart(channel),
["flights"] = channel => new QuickstartFlightTickets.FlightTickets().QuickStart(channel)
};
if (args.FirstOrDefault() is "--help" or "-h")
{
Console.WriteLine("Usage: dotnet run -- <loyalty|coupons|tickets|flights>");
return 0;
}
var exampleName = args.FirstOrDefault();
if (exampleName is null && !Console.IsInputRedirected)
{
Console.WriteLine("Choose an example:");
var names = examples.Keys.ToArray();
for (var index = 0; index < names.Length; index++)
Console.WriteLine($" {index + 1}. {names[index]}");
Console.Write("Selection [1]: ");
var selection = Console.ReadLine();
exampleName = int.TryParse(selection, out var number) && number >= 1 && number <= names.Length
? names[number - 1]
: names[0];
}
exampleName ??= "loyalty";
if (!examples.TryGetValue(exampleName, out var run))
{
Console.Error.WriteLine($"Unknown example '{exampleName}'. Choose: {string.Join(", ", examples.Keys)}");
return 2;
}
try
{
Constants.Validate();
using var pool = new GrpcConnectionPool.GrpcConnectionPool();
Console.WriteLine($"Running the {exampleName} quickstart against {Constants.Environment}...");
run(pool.GetChannel());
return 0;
}
catch (Exception exception)
{
Console.Error.WriteLine($"Quickstart failed: {exception.Message}");
return 1;
}