private static Dictionary <string, Dictionary <int, double> > GetDictForVerbrauch( [NotNull] MonthlyElectricityUsePerStandort perStandortElectricityMonthlyValuesByTarif, Verbrauchsart vba) { switch (vba) { case Verbrauchsart.ElectricityLocalnet: return(perStandortElectricityMonthlyValuesByTarif.ElectricityLocalNetMonthlyValuesByTarif); case Verbrauchsart.Gas: return(perStandortElectricityMonthlyValuesByTarif.GasMonthlyValuesByTarif); case Verbrauchsart.Fernwaerme: return(perStandortElectricityMonthlyValuesByTarif.FernwaermeMonthlyValuesByTarif); case Verbrauchsart.ElectricityNetz: return(perStandortElectricityMonthlyValuesByTarif.ElectricityNetzMonthlyValuesByTarif); case Verbrauchsart.Netzuebergabe: return(perStandortElectricityMonthlyValuesByTarif.ElectricityNetzübergabeMonthlyValuesByTarif); default: throw new ArgumentOutOfRangeException(nameof(vba), vba, null); } }
private void MakeChartForOneVerbrauchsart(Verbrauchsart vba, double factor, [NotNull] string unit, [NotNull][ItemNotNull] List <MonthlyElectricityUsePerStandort> energyusePerStandort, [NotNull] MyDb db) { var path = db.GetResultFullPath(SequenceNumber, Name); var energyUseByTarifAndMonth = new Dictionary <string, Dictionary <int, double> >(); foreach (var perStandort in energyusePerStandort) { var dict = GetDictForVerbrauch(perStandort, vba); foreach (var tarifValues in dict) { if (!energyUseByTarifAndMonth.ContainsKey(tarifValues.Key)) { energyUseByTarifAndMonth.Add(tarifValues.Key, new Dictionary <int, double>()); for (var i = 1; i < 13; i++) { energyUseByTarifAndMonth[tarifValues.Key].Add(i, 0); } } foreach (var monthlyValues in tarifValues.Value) { energyUseByTarifAndMonth[tarifValues.Key][monthlyValues.Key] += monthlyValues.Value / factor; } } } //anzahl gebäude var bses = new List <BarSeriesEntry>(); var dstPath = Path.Combine(path, "allData." + vba + ".csv"); using (var sw = new StreamWriter(dstPath)) { var sb = new StringBuilder(); //header foreach (var tarifValues in energyUseByTarifAndMonth) { sb.Append(tarifValues.Key).Append(";"); } sw.WriteLine(sb); for (var i = 1; i < 13; i++) { sb = new StringBuilder(); foreach (var tarifValues in energyUseByTarifAndMonth) { sb.Append(tarifValues.Value[i]).Append(";"); } sw.WriteLine(sb); } sw.Close(); } foreach (var tarifValues in energyUseByTarifAndMonth) { var bse = new BarSeriesEntry(tarifValues.Key); bse.Values.Add(0); for (var i = 0; i < 12; i++) { bse.Values.Add(tarifValues.Value[i + 1]); } bses.Add(bse); var singleTarif = new List <BarSeriesEntry> { bse }; Services.PlotMaker.MakeBarChart(Path.Combine(path, "MonthlyUse." + vba + "." + FilenameHelpers.CleanFileName(bse.Name) + ".png"), "Strom [kWh]", singleTarif, new List <string>()); } Services.PlotMaker.MakeBarChart(Path.Combine(path, "MonthlyUse." + vba + ".png"), "Strom [" + unit + "]", bses, new List <string>()); }