static Task <Amazon.S3.Model.PutObjectResponse> UploadToS3(CompatibilitySummary summary) { var awsAccessKey = Environment.GetEnvironmentVariable("ps_aws_access_key"); var awsSecretKey = Environment.GetEnvironmentVariable("ps_aws_secret_key"); var creds = new Amazon.Runtime.BasicAWSCredentials(awsAccessKey, awsSecretKey); var client = new AmazonS3Client(creds, Amazon.RegionEndpoint.USWest2); var summaryBody = JsonConvert.SerializeObject(summary); var putRequest = new Amazon.S3.Model.PutObjectRequest { BucketName = "playcompatibility", Key = "compat_summary.json", ContentBody = summaryBody }; return(client.PutObjectAsync(putRequest)); }
static CompatibilitySummary GenerateCompatibilitySummary(IEnumerable <GameCompatibility> gameCompats) { var stateCount = new Dictionary <string, int>(); foreach (var gameCompat in gameCompats) { int currentCount = 0; stateCount.TryGetValue(gameCompat.State, out currentCount); stateCount[gameCompat.State] = currentCount + 1; } var summary = new CompatibilitySummary(); foreach (var entry in stateCount) { var summaryItem = new CompatibilitySummaryItem(); summaryItem.State = entry.Key; summaryItem.Count = entry.Value; summary.Items.Add(summaryItem); } summary.UpdateTime = DateTime.UtcNow; return(summary); }