示例#1
0
        public void Manifest_UnpackAzureSqlDw_TwoInCollection()
        {
            var manifest = new UnpackManifest(json);
            var services = manifest.Unplug();

            Assert.Equal(2, services.AzureSqlDws.Length);
        }
示例#2
0
        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));
        }