|
1 | 1 | using dotenv.net;
|
2 |
| -using Helper; |
3 | 2 | using MassTransit;
|
4 | 3 |
|
5 | 4 | public static class BusRegistrationConfiguratorExt
|
6 | 5 | {
|
7 | 6 | public static void SetupTransport(this IBusRegistrationConfigurator x, string[] args)
|
8 | 7 | {
|
9 |
| - string selectedTransport; |
| 8 | + string selectedTransport = Environment.GetEnvironmentVariable("TRANSPORT_TYPE") ?? "RabbitMQ"; |
10 | 9 |
|
11 |
| - if (args.Contains("--amazonsqs")) |
| 10 | + switch (selectedTransport) |
12 | 11 | {
|
13 |
| - x.UsingAmazonSqs((ctx, cfg) => |
14 |
| - { |
15 |
| - var envs = DotEnv.Read(new DotEnvOptions(envFilePaths: [Path.GetFullPath("../../../sqs.env")])); |
16 |
| - cfg.Host(envs["AWS_REGION"], h => |
| 12 | + case "AmazonSQS": |
| 13 | + x.UsingAmazonSqs((ctx, cfg) => |
17 | 14 | {
|
18 |
| - h.AccessKey(envs["AWS_ACCESS_KEY_ID"]); |
19 |
| - h.SecretKey(envs["AWS_SECRET_ACCESS_KEY"]); |
20 |
| - }); |
21 |
| - |
22 |
| - cfg.ConfigureEndpoints(ctx); |
23 |
| - }); |
24 |
| - selectedTransport = "AmazonSQS"; |
25 |
| - } |
26 |
| - else if (args.Contains("--azureservicebus")) |
27 |
| - { |
28 |
| - var envs = DotEnv.Read(new DotEnvOptions(envFilePaths: [Path.GetFullPath("../../../asb.env")], ignoreExceptions: false)); |
29 |
| - x.UsingAzureServiceBus((context, cfg) => |
30 |
| - { |
31 |
| - cfg.Host(envs["CONNECTIONSTRING"]); |
| 15 | + var envs = DotEnv.Read(new DotEnvOptions(envFilePaths: [Path.GetFullPath("../../../sqs.env")])); |
| 16 | + cfg.Host(envs["AWS_REGION"], h => |
| 17 | + { |
| 18 | + h.AccessKey(envs["AWS_ACCESS_KEY_ID"]); |
| 19 | + h.SecretKey(envs["AWS_SECRET_ACCESS_KEY"]); |
| 20 | + }); |
32 | 21 |
|
33 |
| - cfg.ConfigureEndpoints(context); |
34 |
| - }); |
| 22 | + cfg.ConfigureEndpoints(ctx); |
| 23 | + }); |
| 24 | + break; |
| 25 | + case "AzureServiceBus": |
| 26 | + var envs = DotEnv.Read(new DotEnvOptions(envFilePaths: [Path.GetFullPath("../../../asb.env")], ignoreExceptions: false)); |
| 27 | + x.UsingAzureServiceBus((context, cfg) => |
| 28 | + { |
| 29 | + cfg.Host(envs["CONNECTION_STRING"]); |
35 | 30 |
|
36 |
| - selectedTransport = "Azure Service Bus"; |
37 |
| - } |
38 |
| - else if (args.Contains("--rabbitmq")) |
39 |
| - { |
40 |
| - x.UsingRabbitMq((context, cfg) => |
41 |
| - { |
42 |
| - cfg.Host("localhost", 33721, "/", h => |
| 31 | + cfg.ConfigureEndpoints(context); |
| 32 | + }); |
| 33 | + break; |
| 34 | + case "RabbitMQ": |
| 35 | + x.UsingRabbitMq((context, cfg) => |
43 | 36 | {
|
44 |
| - h.Username("guest"); |
45 |
| - h.Password("guest"); |
| 37 | + cfg.Host("rabbitmq", 5672, "/", h => |
| 38 | + { |
| 39 | + h.Username("guest"); |
| 40 | + h.Password("guest"); |
| 41 | + }); |
| 42 | + cfg.ConfigureEndpoints(context); |
46 | 43 | });
|
47 |
| - cfg.ConfigureEndpoints(context); |
48 |
| - }); |
49 |
| - selectedTransport = "RabbitMQ"; |
| 44 | + break; |
| 45 | + default: |
| 46 | + throw new ArgumentException("No transport is chosen"); |
50 | 47 | }
|
51 |
| - else |
52 |
| - { |
53 |
| - throw new ArgumentException("No transport is chosen"); |
54 |
| - } |
55 |
| - |
56 |
| - var name = Path.GetFileNameWithoutExtension(Environment.GetCommandLineArgs()[0]); |
57 |
| - Console.Title = name + " - " + selectedTransport; |
58 | 48 |
|
59 | 49 | x.AddConfigureEndpointsCallback((name, cfg) =>
|
60 | 50 | {
|
|
0 commit comments