public void Manifest_UnpackAzureSqlDw_TwoInCollection() { var manifest = new UnpackManifest(json); var services = manifest.Unplug(); Assert.Equal(2, services.AzureSqlDws.Length); }
public CarbonResponses Calculate(string json, int month, int year, string application) { var services = new UnpackManifest(json).Unplug(); List <AzureBatchCalculator> batches = new List <AzureBatchCalculator>(); foreach (var batch in services.AzureBatches) { batches.Add(new AzureBatchCalculator(batch.Minutes, batch.TimePeriod, new PueCalculator(), batch.Measure)); } var batchesCalc = new AzureBatchCollection(new DateTime(year, month, 1)).CoreHoursDCvsCloudSavingsByPue(batches.ToArray()); var carbonBatches = CalculateCarbonOffset(batchesCalc.Item1, batchesCalc.Item2); var carbBatches = new CarbonResponse(services.AzureBatches[0].ToString(), batchesCalc.Item1, batchesCalc.Item2, batchesCalc.Item3, carbonBatches.Item1, carbonBatches.Item2, month, year, application); List <SqlDwCalculator> sqlDw = new List <SqlDwCalculator>(); foreach (var dw in services.AzureSqlDws) { sqlDw.Add(new SqlDwCalculator(dw.Minutes, dw.TimePeriod, new PueCalculator(), dw.Measure)); } var sqlDwCalc = new SqlDwCollection(new DateTime(year, month, 1)).CoreHoursDCvsCloudSavingsByPue(sqlDw.ToArray()); var carbonDw = CalculateCarbonOffset(sqlDwCalc.Item1, sqlDwCalc.Item2); var carbDw = new CarbonResponse(services.AzureSqlDws[0].ToString(), sqlDwCalc.Item1, sqlDwCalc.Item2, sqlDwCalc.Item3, carbonDw.Item1, carbonDw.Item2, month, year, application); List <AzureDatabricksCalculator> databricks = new List <AzureDatabricksCalculator>(); foreach (var db in services.AzureDatabricks) { databricks.Add(new AzureDatabricksCalculator(db.Minutes, db.TimePeriod, new PueCalculator(), db.Measure)); } var dbCalc = new AzureDatabricksCollection(new DateTime(year, month, 1)).CoreHoursDCvsCloudSavingsByPue(databricks.ToArray()); var carbonDb = CalculateCarbonOffset(dbCalc.Item1, dbCalc.Item2); var carbDb = new CarbonResponse(services.AzureDatabricks[0].ToString(), dbCalc.Item1, dbCalc.Item2, dbCalc.Item3, carbonDb.Item1, carbonDb.Item2, month, year, application); // return all of the doubles in a structure return(new CarbonResponses(carbBatches, carbDw, carbDb)); }