public IContainer ConfigureContainer(StartupParameters parameters) { var container = new Container(); container.Configure(ctx => AwsBootstrapper.Configure(ctx, parameters)); container.Configure(ctx => ConfigureLoggers(ctx, parameters)); container.Configure(ConfigureInternalDependencies); return(container); }
private void ConfigureLoggers(IProfileRegistry registry, StartupParameters parameters) { var fileSettings = new FileSettings(parameters.ConfigFolderLocation); var loadLogger = new ConsoleConfigLoadLogger(parameters.Verbose); var alarmLogger = new ConsoleAlarmLogger(parameters.Verbose); registry.For <FileSettings>().Use(fileSettings); registry.For <IConfigLoadLogger>().Use(loadLogger); registry.For <IAlarmLogger>().Use(alarmLogger); }
public static void Configure(IProfileRegistry registry, StartupParameters parameters) { var region = AwsStartup.ParseRegion(parameters.AwsRegion); var creds = AwsStartup.CredentialsWithFallback( parameters.AwsAccessKey, parameters.AwsSecretKey, parameters.AwsProfile); registry.For <IAmazonDynamoDB>() .Use(ctx => new AmazonDynamoDBClient(creds, new AmazonDynamoDBConfig { RegionEndpoint = region })); registry.For <IAmazonCloudWatch>() .Use(ctx => new AmazonCloudWatchClient(creds, new AmazonCloudWatchConfig { RegionEndpoint = region })); }
private static int Main(string[] args) { var startupParams = new StartupParameters(); if (!Parser.Default.ParseArguments(args, startupParams)) { Console.WriteLine("Missing required arguments, exiting..."); return(ExitCode.InvalidParams); } var task = GenerateReports(startupParams); task.Wait(); return(task.Result); }
private static async Task <int> GenerateReports(StartupParameters startupParams) { try { var container = new IocBootstrapper().ConfigureContainer(startupParams); var reportGenerator = container.GetInstance <ReportGenerator>(); var reports = await reportGenerator.GetReports(); var reportSender = container.GetInstance <ReportSender>(); await reportSender.SendReports(reports); return(ExitCode.Success); } catch (Exception ex) { Console.Error.WriteLine($"Run failed: {ex.Message}"); return(ExitCode.RunFailed); } }