public MainForm(IEc2Caller ec2Caller, ISqsCaller sqsCaller, WorkerCaller workerCaller) { this.ec2Caller = ec2Caller; this.sqsCaller = sqsCaller; this.workerCaller = workerCaller; InitializeComponent(); Action<AwsRegionControl, AwsRegionLocations> setupRegions = (control, region) => { control.RegionLocation = region; controlRegionDictionary.Add(region, control); }; setupRegions(UsEastRegion, AwsRegionLocations.UsEast); setupRegions(UsWest1Region, AwsRegionLocations.UsWest1); setupRegions(UsWest2Region, AwsRegionLocations.UsWest2); setupRegions(SaEastRegion, AwsRegionLocations.SaEast); setupRegions(EuWestRegion, AwsRegionLocations.EuWest); setupRegions(AsiaNortheastRegion, AwsRegionLocations.ApNortheast); setupRegions(AsiaSoutheast1Region, AwsRegionLocations.ApSoutheast1); setupRegions(AsiaSoutheast2Region, AwsRegionLocations.ApSoutheast2); foreach (var control in controlRegionDictionary.Values) { control.RegionIdLabelClicked += (o, region) => ShowRegionDetails(region); control.AddInstanceButtonClicked += (o, region) => LaunchInstance(region); control.RemoveInstanceButtonClicked += (o, region) => TerminateInstance(region); } }
static void Main() { // Keeping things simple by not using DI here //ICredentialsRetriever credentialsRetriever = new FileBasedCredentialsRetriever(@"C:\aws-talk\aws-talk-credentials.txt"); ICredentialsRetriever credentialsRetriever = new SimpleCredentialsRetriever("YourAccessKey", "YourSecretKey"); if (!credentialsRetriever.CredentialsExist()) { throw new Exception("AWS credentials not found. Please use SimpleCredentialsRetriever (above) to enter your AWS credentials)"); } var s3Bucket = "aws-talk"; var workerAmi = "aws-talk-base"; var securityGroup = "aws-talk"; var keyPair = "aws-talk"; var queueUrl = "https://sqs.us-east-1.amazonaws.com/025631894481/aws-talk"; var ec2Caller = new Ec2Caller(credentialsRetriever, workerAmi, securityGroup, keyPair); var sqsCaller = new SqsCaller(credentialsRetriever, queueUrl); //var ec2Caller = new FakeEc2Caller(); var workerCaller = new WorkerCaller(credentialsRetriever, s3Bucket); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new MainForm(ec2Caller, sqsCaller, workerCaller)); }