private static int Comparison([NotNull] Localnet x, [NotNull] Localnet y) { if (x.Objektstandort != y.Objektstandort) { return(string.Compare(x.Objektstandort, y.Objektstandort, StringComparison.Ordinal)); } return(string.Compare(x.TerminString, y.TerminString, StringComparison.Ordinal)); }
protected override void RunActualProcess() { // ReSharper disable once StringLiteralTypo string fn = CombineForRaw("reduced.xlsx"); ExcelHelper eh = new ExcelHelper(Services.Logger, MyStage); var arr = eh.ExtractDataFromExcel2(fn, 1, "A1", "AH476000", out var _); var hdict = new Dictionary <string, int>(); for (var i = 0; i < arr.GetLength(1) - 1; i++) { var o = arr[0, i]; if (o == null) { throw new Exception("was null"); } hdict.Add(o.ToString(), i); } var db = Services.SqlConnectionPreparer.GetDatabaseConnection(Stage.Raw, Constants.PresentSlice); db.RecreateTable <Localnet>(); db.BeginTransaction(); int negativeIsnCounter = -1000; for (var row = 1; row < arr.GetLength(0); row++) { var a = new Localnet(); if (arr[row, hdict["Termin"]] == null) { continue; } AssignFields(a, arr, row, hdict, ref negativeIsnCounter); db.Save(a); } db.CompleteTransaction(); var readVals = db.Fetch <Localnet>(); foreach (Localnet localnet in readVals) { if (localnet.ObjektIDGebäude == -2146826246) { throw new FlaException("-"); } if (localnet.ObjektIDGebäude == null) { throw new FlaException("was null"); } } }
// ReSharper disable once FunctionComplexityOverflow private static void AssignFields([NotNull] Localnet a, [ItemNotNull][NotNull] object[,] arr, int row, [NotNull] Dictionary <string, int> hdict, ref int negativeIsnCounter) { a.Termin = Helpers.GetDateTime(arr[row, hdict["Termin"]]).Ticks; a.TerminString = Helpers.GetDateTime(arr[row, hdict["Termin"]]).ToString(CultureInfo.InvariantCulture); a.TerminJahr = Helpers.GetInt(arr[row, hdict["Termin Jahr"]]); a.TerminSemester = Helpers.GetString(arr[row, hdict["Termin Semester"]]); a.TerminQuartal = Helpers.GetString(arr[row, hdict["Termin Quartal"]]); a.Basis = Helpers.GetDouble(arr[row, hdict["Basis"]]); a.BasisVerbrauch = Helpers.GetDouble(arr[row, hdict["Basis Verbrauch"]]); a.BasisLeistung = Helpers.GetDouble(arr[row, hdict["Basis Leistung"]]); a.BasisBlind = Helpers.GetDouble(arr[row, hdict["Basis Blind"]]); a.Betrag = Helpers.GetDouble(arr[row, hdict["Betrag"]]); a.MwStBetrag = Helpers.GetDouble(arr[row, hdict["MwSt-Betrag"]]); a.RechposBetraginklMwSt = Helpers.GetDouble(arr[row, hdict["Rechpos Betrag inkl. MwSt"]]); a.Verrechnungstyp = Helpers.GetString(arr[row, hdict["Verrechnungstyp"]]); a.VerrechnungstypArt = Helpers.GetString(arr[row, hdict["Verrechnungstyp Art"]]); a.VerrechnungstypKategorie = Helpers.GetString(arr[row, hdict["Verrechnungstyp Kategorie"]]); a.VerrechnungstypMessart = Helpers.GetString(arr[row, hdict["Verrechnungstyp Messart"]]); a.Vertragsart = Helpers.GetString(arr[row, hdict["Vertragsart"]]); a.Gruppe = Helpers.GetString(arr[row, hdict["Gruppe"]]); a.Ruecklieferung = Helpers.GetString(arr[row, hdict["Ruecklieferung"]]); a.VerrechnungstypEinheit = Helpers.GetString(arr[row, hdict["Verrechnungstyp Einheit"]]); a.MwStSatz = Helpers.GetDouble(arr[row, hdict["MwSt Satz"]]); a.RechposTage = Helpers.GetInt(arr[row, hdict["Rechpos Tage"]]); a.Tarif = Helpers.GetString(arr[row, hdict["Tarif"]]); a.Fakturierungsvariante = Helpers.GetString(arr[row, hdict["Fakturierungsvariante"]]); a.VertragspartnerAdresse = Helpers.GetString(arr[row, hdict["Vertragspartner Adresse"]]); a.Objektstandort = Helpers.GetString(arr[row, hdict["Objektstandort"]]); a.Rechnungsart = Helpers.GetString(arr[row, hdict["Rechnungsart"]]); a.VertragId = Helpers.GetInt(arr[row, hdict["Vertrag-Id"]]); a.SubjektId = Helpers.GetInt(arr[row, hdict["Subjekt-Id"]]); a.SammelrechnungId = Helpers.GetInt(arr[row, hdict["Sammelrechnung-Id"]]); a.ObjektIdVertrag = Helpers.GetInt(arr[row, hdict["Objekt-Id-Vertrag"]]); a.Marktprodukt = Helpers.GetString(arr[row, hdict["Marktprodukt"]]); a.StandortID = Helpers.GetInt(arr[row, hdict["Standort-ID"]]); int?objektid = Helpers.GetInt(arr[row, hdict["Objekt-ID Gebäude"]]); if (objektid != null) { a.ObjektIDGebäude = objektid; } else { a.ObjektIDGebäude = negativeIsnCounter--; } }
protected override void RunActualProcess() { // ReSharper disable once StringLiteralTypo var arr = ExcelHelper.ExtractDataFromExcel(@"U:\SimZukunft\RawDataForMerging\reduced.xlsb", 1, "A1", "AH476000"); var hdict = new Dictionary <string, int>(); for (var i = 0; i < arr.GetLength(1) - 1; i++) { var o = arr[1, i + 1]; if (o == null) { throw new Exception("was null"); } hdict.Add(o.ToString(), i + 1); } SqlConnection.RecreateTable <Localnet>(Stage.Raw, Constants.PresentSlice); var db = SqlConnection.GetDatabaseConnection(Stage.Raw, Constants.PresentSlice).Database; db.BeginTransaction(); for (var row = 2; row < arr.GetLength(0); row++) { var a = new Localnet(); if (arr[row, hdict["Termin"]] == null) { continue; } AssignFields(a, arr, row, hdict); db.Save(a); } db.CompleteTransaction(); }
private void ProcessVerrechnungstyp([NotNull] Localnet localnet, [NotNull] MonthlyElectricityUsePerStandort meps) { var processed = false; switch (localnet.Verrechnungstyp) { case "Energie Tagesstrom (HT)": meps.AddLocalnetEntryForStandort(localnet, Verbrauchsart.ElectricityLocalnet); processed = true; break; case "Energie Nachtstrom (NT)": meps.AddLocalnetEntryForStandort(localnet, Verbrauchsart.ElectricityLocalnet); processed = true; break; case "Gutschrift Strom Energie": meps.AddLocalnetEntryForStandort(localnet, Verbrauchsart.ElectricityLocalnet); processed = true; break; case "Nachbelastung Strom Energie": meps.AddLocalnetEntryForStandort(localnet, Verbrauchsart.ElectricityLocalnet); processed = true; break; case "Rücklieferung Tagesstrom HT": meps.AddLocalnetEntryForStandort(localnet, Verbrauchsart.ElectricityLocalnet); processed = true; break; case "Rücklieferung Nachtstrom NT": meps.AddLocalnetEntryForStandort(localnet, Verbrauchsart.ElectricityLocalnet); processed = true; break; case "EVG Tagesstrom (HT)": meps.AddLocalnetEntryForStandort(localnet, Verbrauchsart.ElectricityLocalnet); processed = true; break; case "EVG Nachtstrom (NT)": meps.AddLocalnetEntryForStandort(localnet, Verbrauchsart.ElectricityLocalnet); processed = true; break; case "Gutschrift Erdgas": break; case "Kosten Erdgasbezug": break; case "Erdgasverbrauch": meps.AddLocalnetEntryForStandort(localnet, Verbrauchsart.Gas); processed = true; break; case "CO2-Abgabe": break; case "Grundpreis Erdgas": break; case "Grundgebühr Erdgas": break; case "Leistungsspitze": break; case "Arbeitspreis": meps.AddLocalnetEntryForStandort(localnet, Verbrauchsart.Fernwaerme); processed = true; break; case "Grundpreis Wärme (kW/Mt)": break; case "Grundpreis Wärme (Zähler/Mt)": break; case "Grundpreis 1 (kW/Mt)": break; case "Grundpreis 2 (kW/Mt)": break; case "Leistung": break; case "Blindenergie (HT)": break; case "Blindenergie (NT)": break; case "Grundpreis Strom": break; case "Netz Tagesstrom (HT)": if (localnet.BasisVerbrauch == null) { throw new Exception("Basisverbrauch was null"); } _stromNetzSum += localnet.BasisVerbrauch.Value; meps.AddLocalnetEntryForStandort(localnet, Verbrauchsart.ElectricityNetz); break; case "Netz Nachtstrom (NT)": if (localnet.BasisVerbrauch == null) { throw new Exception("Basisverbrauch was null"); } _stromNetzSum += localnet.BasisVerbrauch.Value; meps.AddLocalnetEntryForStandort(localnet, Verbrauchsart.ElectricityNetz); break; case "Messung und Abrechnung": break; case "Systemdienstleistungen Swissgrid (SDL)": break; case "Kostendeckende Einspeisevergütung KEV": break; case "Abgabe an Gemeinde": break; case "Gutschrift Strom Netznutzung": break; case "Bundesabgabe zum Schutz der Gewässer und Fische": break; case "Netz Rücklieferung Tagesstrom HT": break; case "Netz Rücklieferung Nachtstrom NT": break; case "Messung und Abrechung Netzübergabestelle": meps.AddLocalnetEntryForStandort(localnet, Verbrauchsart.Netzuebergabe); break; case "EVG Leistung": break; case "EVG Blindenergie (HT)": break; case "EVG Blindenergie (NT)": break; default: throw new Exception("unknown verrechnungstyp"); } if (!processed && localnet.BasisVerbrauch > 0 && localnet.Vertragsart != "Netz") { Info("Verbrauch, but not processed for " + localnet.Verrechnungstyp); } }