protected override List <MassnahmenvorschlagProZustandsabschnittPo> GetPresentationObjectListForGis(MassnahmenvorschlagProZustandsabschnittParameter parameter) { ZustandsabschnittGIS za = null; StrassenabschnittGIS sa = null; var joinAlias = transactionScopeProvider.CurrentTransactionScope.Session.QueryOver(() => za).JoinAlias(() => za.StrassenabschnittGIS, () => sa); var queryOver = filtererFactory.CreateFilterer <ZustandsabschnittGIS>(parameter).Filter(joinAlias) .Where(z => z.MassnahmenvorschlagFahrbahn != null || z.MassnahmenvorschlagTrottoirLinks != null || z.MassnahmenvorschlagTrottoirRechts != null); if (ErfassungsPeriodService.GetCurrentErfassungsPeriod().NetzErfassungsmodus == NetzErfassungsmodus.Gis) { queryOver = massnahmenvorschlagProZustandsabschnittMapProvider.FilterForBoundingBox(queryOver, parameter); } var fetchedQueryOver = queryOver .Fetch(z => z.StrassenabschnittGIS).Eager .Fetch(z => z.MassnahmenvorschlagFahrbahn).Eager .Fetch(z => z.MassnahmenvorschlagTrottoirLinks).Eager .Fetch(z => z.MassnahmenvorschlagTrottoirRechts).Eager; return(fetchedQueryOver.List <ZustandsabschnittGIS>().Select(CreatePo) .OrderBy(z => z.Strassenname) .ThenBy(z => z.Strassenabschnittsnummer) .ThenBy(z => z.StrasseBezeichnungVon) .ThenBy(z => z.Abschnittsnummer) .ThenBy(z => z.BezeichnungVon) .ToList()); }
protected override bool IsForClosedErfassungsPeriod( RealisiertenMassnahmenWertverlustZustandsindexProJahrGrafischeParameter parameter) { var erfassungsPeriod = ErfassungsPeriodService.GetEntityById(parameter.JahrIdBis); return(erfassungsPeriod != null && erfassungsPeriod.IsClosed); }
protected override void CalculatePos(BenchmarkauswertungKennwertenRealisiertenMassnahmenParameter parameter) { DateTime bezugsJahr = GetJahrDateTime(parameter.JahrId); var aenlicheMandanten = benchmarkingGruppenService.GetAenlicheMandanten(bezugsJahr, parameter.BenchmarkingGruppenTypList); if (aenlicheMandanten.Count < 5) { return; } var currentMandant = securityService.GetCurrentMandant(); var jahren = new List <DateTime>(); jahren.AddRange(ErfassungsPeriodService.GetEntitiesBy(currentMandant).Where(ep => ep.Erfassungsjahr <= bezugsJahr && ep.IsClosed).Select(ep => ep.Erfassungsjahr).ToList()); jahren.AddRange(kenngroessenFruehererJahreService.GetEntitiesBy(currentMandant).Where(kfj => kfj.Jahr <= bezugsJahr.Year).Select(ep => ep.Jahr).ToList().Select(j => new DateTime(j, 01, 01))); jahren = jahren.OrderByDescending(dt => dt).ToList(); if (jahren.Count > 5) { jahren = jahren.Take(5).ToList(); } var previousYears = jahren.Select(dateTime => benchmarkingDataService.GetForCurrentMandant(dateTime)).ToList(); var @group = benchmarkingDataService.GetForMandantList(bezugsJahr, aenlicheMandanten); var all = benchmarkingDataService.GetForAllMandant(bezugsJahr); var current = benchmarkingDataService.GetForCurrentMandant(bezugsJahr); var l = reportLocalizationService; poListDictionary[BenchmarkauswertungRealisierteMassnahmenSubReportName] = new List <BenchmarkauswertungKennwertenRealisiertenMassnahmenPo>() { CreateBenchmarkauswertungKennwertenRealisiertenMassnahmenPo(all, @group, previousYears, current, m => m.RealisierteMassnahmenProFahrbahn, l.RealisierteFlaeche, l.EinheitKostenProFlaeche), CreateBenchmarkauswertungKennwertenRealisiertenMassnahmenPo(all, @group, previousYears, current, m => m.RealisierteMassnahmenProEinwohner, l.Einwohner, l.EinheitKostenProEinwohner), }; poListDictionary[BenchmarkauswertungRealisierteMassnahmenProWertverlustSubReportName] = new List <BenchmarkauswertungKennwertenRealisiertenMassnahmenPo> { new BenchmarkauswertungKennwertenRealisiertenMassnahmenPo(), CreateBenchmarkauswertungKennwertenRealisiertenMassnahmenPo(all, @group, previousYears, current, m => m.RealisierteMassnahmenProWertverlustNetz, "", l.EinheitProzent), new BenchmarkauswertungKennwertenRealisiertenMassnahmenPo(), }; poListDictionary[BenchmarkauswertungRealisierteMassnahmenProWBWSubReportName] = new List <BenchmarkauswertungKennwertenRealisiertenMassnahmenPo> { new BenchmarkauswertungKennwertenRealisiertenMassnahmenPo(), CreateBenchmarkauswertungKennwertenRealisiertenMassnahmenPo(all, @group, previousYears, current, m => m.RealisierteMassnahmenProWiederbeschaffungswertNetz, "", l.EinheitProzent), new BenchmarkauswertungKennwertenRealisiertenMassnahmenPo(), }; poListDictionary[BenchmarkauswertungRealisierteMassnahmenProBelastungskategorieSubReportName] = new List <BenchmarkauswertungKennwertenRealisiertenMassnahmenPo> ( belastungskategorieService.AlleBelastungskategorie.Select(b => CreateBenchmarkauswertungKennwertenRealisiertenMassnahmenPo( all.SelectMany(m => m.BenchmarkingDataDetails.Where(d => d.Belastungskategorie.Id == b.Id)).ToList(), @group.SelectMany(m => m.BenchmarkingDataDetails.Where(d => d.Belastungskategorie.Id == b.Id)).ToList(), previousYears.SelectMany(m => m.BenchmarkingDataDetails.Where(d => d.Belastungskategorie.Id == b.Id)).ToList(), current.BenchmarkingDataDetails.SingleOrDefault(d => d.Belastungskategorie.Id == b.Id) ?? new BenchmarkingDataDetail(), s => s.RealisierteMassnahmenProWiederbeschaffungswertNetz, null, l.EinheitProzent, LocalizationService.GetLocalizedBelastungskategorieTyp(b.Typ, LocalizationType.Short) )) ); }
protected bool IsCurrentErfassungsPeriod(Guid?erfassungsPeriodId) { if (erfassungsPeriodId == null) { return(true); } return(HistorizationService.GetCurrentErfassungsperiod() == ErfassungsPeriodService.GetEntityById(erfassungsPeriodId.Value)); }
private void CalculatePosForErfassungsPeriod <TZustandsabschnittBase, TStrassenabschnittBase>(TZustandsabschnittBase[] zustandsabschnittList, JahresInterval jahresInterval, ErfassungsPeriod erfassungsPeriod) where TStrassenabschnittBase : StrassenabschnittBase where TZustandsabschnittBase : ZustandsabschnittBase { var zustandsspiegelProJahrGrafischeDiagramPos = Enum.GetValues(typeof(ZustandsindexTyp)) .OfType <ZustandsindexTyp>() .Where(z => z != ZustandsindexTyp.Unbekannt) .Select(z => CreateDiagramPo(z, jahresInterval)) .ToDictionary(po => po.ZustandsindexTyp, po => po); decimal totalUnknowZustandsindexTypFlaeche = 0; decimal mittlereZustandsindexWithFlaeche = 0; decimal mittlererAufnahmedatumTickMultipliedWithFlaeche = 0; foreach (var zustandsabschnitt in zustandsabschnittList) { var zustandsindexTyp = ZustandsindexCalculator.GetTyp(zustandsabschnitt.Zustandsindex); zustandsspiegelProJahrGrafischeDiagramPos[zustandsindexTyp].FlaecheFahrbahn += (zustandsabschnitt.FlaecheFahrbahn ?? 0); mittlereZustandsindexWithFlaeche += zustandsabschnitt.Zustandsindex * (zustandsabschnitt.FlaecheFahrbahn ?? 0); mittlererAufnahmedatumTickMultipliedWithFlaeche += zustandsabschnitt.Aufnahmedatum.Ticks * (zustandsabschnitt.FlaecheFahrbahn ?? 0); } var currentJahr = ErfassungsPeriodService.GetCurrentErfassungsPeriod().Erfassungsjahr.Year; diagramPos[jahresInterval.JahrBis] = zustandsspiegelProJahrGrafischeDiagramPos.Values.ToList(); var totalKnownZustandsindexTypFlaeche = zustandsspiegelProJahrGrafischeDiagramPos.Values.Sum(po => po.FlaecheFahrbahn); var totalFlaeche = totalKnownZustandsindexTypFlaeche + totalUnknowZustandsindexTypFlaeche; var totalStrasseFlaeche = transactionScopeProvider.Queryable <TStrassenabschnittBase>() .Where(z => z.ErfassungsPeriod == erfassungsPeriod) .Sum(g => g.Laenge * g.BreiteFahrbahn); var zustandsspiegelProJahrGrafischeTablePos = zustandsspiegelProJahrGrafischeDiagramPos.Values .Select(po => CreateTablePo(jahresInterval, GetPerzent(po.FlaecheFahrbahn, totalKnownZustandsindexTypFlaeche), FormatHelper.ToReportNoDecimalPercentString, LocalizationService.GetLocalizedEnum(po.ZustandsindexTyp), (int)po.ZustandsindexTyp, currentJahr, po.ZustandsindexTyp)); tablePos[jahresInterval.JahrBis] = zustandsspiegelProJahrGrafischeTablePos.ToList(); PercentPartitioningCorrector.Corrigate(tablePos[jahresInterval.JahrBis].Cast <IPercentHolder>().ToList()); var mittlererAufnahmedatum = (mittlererAufnahmedatumTickMultipliedWithFlaeche == 0 || totalFlaeche == 0) ? (decimal?)null : (decimal.Divide(mittlererAufnahmedatumTickMultipliedWithFlaeche, totalFlaeche)); tablePos[jahresInterval.JahrBis].Add(CreateTablePo(jahresInterval, mittlererAufnahmedatum, d => FormatHelper.ToReportDateTimeString(d, "-"), reportLocalizationService.MittleresAlterDerZustandsaufnahmen, -10, currentJahr)); var netzAnteil = GetPerzent(totalKnownZustandsindexTypFlaeche, totalStrasseFlaeche); tablePos[jahresInterval.JahrBis].Add(CreateTablePo(jahresInterval, netzAnteil, FormatHelper.ToReportNoDecimalPercentString, reportLocalizationService.NetzAnteil, -20, currentJahr)); var mittlererZustandsindex = (mittlereZustandsindexWithFlaeche == 0 || totalFlaeche == 0) ? 0 : decimal.Divide(mittlereZustandsindexWithFlaeche, totalFlaeche); tablePos[jahresInterval.JahrBis].Add(CreateTablePo(jahresInterval, mittlererZustandsindex, FormatHelper.ToReportDecimalString, reportLocalizationService.MittlererZustandsindex, -30, currentJahr)); }
protected override List <StrassenabschnitteListePo> GetPresentationObjectListForGis(StrassenabschnitteListeParameter parameter) { var queryOver = filtererFactory.CreateFilterer <StrassenabschnittGIS>(parameter).Filter(transactionScopeProvider.QueryOver <StrassenabschnittGIS>()); if (ErfassungsPeriodService.GetCurrentErfassungsPeriod().NetzErfassungsmodus == NetzErfassungsmodus.Gis) { queryOver = strassenabschnitteListeMapProvider.FilterForBoundingBox(queryOver, parameter); } return(queryOver.Fetch(s => s.Belastungskategorie).Eager.List <StrassenabschnittGIS>().OrderBy(s => s.Strassenname).Select(CreatePo).ToList()); }
private int GetJahr(Guid jahrId) { var kenngroessenFruehererJahreVon = kenngroessenFruehererJahreService.GetEntityById(jahrId); if (kenngroessenFruehererJahreVon != null) { return(kenngroessenFruehererJahreVon.Jahr); } return(ErfassungsPeriodService.GetEntityById(jahrId).Erfassungsjahr.Year);; }
protected DateTime GetJahrDateTime(Guid jahrId) { var kenngroessenFruehererJahre = KenngroessenFruehererJahreService.GetEntityById(jahrId); if (kenngroessenFruehererJahre != null) { return(new DateTime(kenngroessenFruehererJahre.Jahr, 01, 01)); } return(ErfassungsPeriodService.GetEntityById(jahrId).Erfassungsjahr); }
protected List <TReportPo> CreatePoList(TReportParameter parameter) { var result = new List <TReportPo>(); erfassungPeriodVon = ErfassungsPeriodService.GetEntityById(parameter.ErfassungsPeriodIdVon); erfassungPeriodBis = ErfassungsPeriodService.GetEntityById(parameter.ErfassungsPeriodIdBis); var summarich = filtererFactory.CreateFilterer <RealisierteMassnahmeSummarsich>(parameter).Filter(transactionScopeProvider.Queryable <RealisierteMassnahmeSummarsich>()); var strassennamen = filtererFactory.CreateFilterer <RealisierteMassnahme>(parameter).Filter(transactionScopeProvider.Queryable <RealisierteMassnahme>()); var gis = filtererFactory.CreateFilterer <RealisierteMassnahmeGIS>(parameter).Filter(transactionScopeProvider.Queryable <RealisierteMassnahmeGIS>()); DateTime jahrVon = erfassungPeriodVon.Erfassungsjahr; DateTime jahrBis = erfassungPeriodBis.Erfassungsjahr; if (!erfassungPeriodBis.IsClosed) { DateTime notCurrentYear = jahrBis.AddYears(-1); result.AddRange(CreatePoListFromRealisierteMassnahmeSummarsich(FilterByErfassungsPeriodVonBis(summarich, jahrVon, notCurrentYear))); result.AddRange(CreatePoListFromRealisierteMassnahme(FilterByErfassungsPeriodVonBis(strassennamen, jahrVon, notCurrentYear))); result.AddRange(CreatePoFromRealisierteMassnahmeGIS(FilterByErfassungsPeriodVonBis(gis, jahrVon, notCurrentYear))); switch (erfassungPeriodBis.NetzErfassungsmodus) { case NetzErfassungsmodus.Summarisch: result.AddRange(CreatePoListFromRealisierteMassnahmeSummarsich(summarich.Where(s => s.ErfassungsPeriod.Id == erfassungPeriodBis.Id))); break; case NetzErfassungsmodus.Tabellarisch: result.AddRange(CreatePoListFromRealisierteMassnahme(strassennamen.Where(s => s.ErfassungsPeriod.Id == erfassungPeriodBis.Id))); break; case NetzErfassungsmodus.Gis: result.AddRange(CreatePoFromRealisierteMassnahmeGIS(gis.Where(s => s.ErfassungsPeriod.Id == erfassungPeriodBis.Id))); break; default: throw new ArgumentOutOfRangeException(); } } else { result.AddRange(CreatePoListFromRealisierteMassnahmeSummarsich(FilterByErfassungsPeriodVonBis(summarich, jahrVon, jahrBis))); result.AddRange(CreatePoListFromRealisierteMassnahme(FilterByErfassungsPeriodVonBis(strassennamen, jahrVon, jahrBis))); result.AddRange(CreatePoFromRealisierteMassnahmeGIS(FilterByErfassungsPeriodVonBis(gis, jahrVon, jahrBis))); } result = result.OrderByDescending(r => r.AusfuehrungsEnde).ThenBy(r => r.Projektname).ToList(); return(result); }
private void CalculateTablePos(JahresInterval jahresInterval, RealisiertenMassnahmenWertverlustZustandsindexProJahrGrafischeDiagramPo diagramPo) { var currentJahr = ErfassungsPeriodService.GetCurrentErfassungsPeriod().Erfassungsjahr.Year; tablePos[jahresInterval.JahrBis].Add(new TablePo { CurrentJahr = currentJahr, AktualString = LocalizationService.GetLocalizedText("CurrentShort"), JahrVon = jahresInterval.JahrVon, JahrBis = jahresInterval.JahrBis, Value = diagramPo.RealisierteMassnahmen, Bezeichnung = reportLocalizationService.RealisiertenMassnahmen, FormatString = FormatStrings.ReportNoDecimalFormat, ColorCode = "#800080", LegendUrl = reportLegendImageService.GetLegendUrl("RM"), SortOrder = 10 }); tablePos[jahresInterval.JahrBis].Add(new TablePo { CurrentJahr = currentJahr, AktualString = LocalizationService.GetLocalizedText("CurrentShort"), JahrVon = jahresInterval.JahrVon, JahrBis = jahresInterval.JahrBis, Value = diagramPo.WertVerlust, Bezeichnung = reportLocalizationService.WV, FormatString = FormatStrings.ReportNoDecimalFormat, ColorCode = "#6495ED", LegendUrl = reportLegendImageService.GetLegendUrl("RWV"), SortOrder = 10 }); tablePos[jahresInterval.JahrBis].Add(new TablePo { CurrentJahr = currentJahr, AktualString = LocalizationService.GetLocalizedText("CurrentShort"), JahrVon = jahresInterval.JahrVon, JahrBis = jahresInterval.JahrBis, Value = diagramPo.MittlererZustandindex, Bezeichnung = reportLocalizationService.MittlererZustandsindex, ColorCode = "#FF0000", FormatString = FormatStrings.ReportShortDecimalFormat, LegendUrl = reportLegendImageService.GetLegendUrl("Mittlerer"), SortOrder = 20 }); }
protected NetzErfassungsmodus GetNetzErfassungsmodus(TReportParameter parameter) { NetzErfassungsmodus erfassungsmodus; if (parameter.ErfassungsPeriodId.HasValue) { erfassungsmodus = ErfassungsPeriodService.GetEntityById(parameter.ErfassungsPeriodId.Value).NetzErfassungsmodus; } else { var currentErfassungsPeriod = ErfassungsPeriodService.GetCurrentErfassungsPeriod(); erfassungsmodus = currentErfassungsPeriod.NetzErfassungsmodus; parameter.ErfassungsPeriodId = parameter.ErfassungsPeriodId ?? currentErfassungsPeriod.Id; } return(erfassungsmodus); }
protected override List <ZustandProZustandsabschnittPo> GetPresentationObjectListForGis(ZustandProZustandsabschnittParameter parameter) { ZustandsabschnittGIS za = null; StrassenabschnittGIS sa = null; var joinAlias = transactionScopeProvider.CurrentTransactionScope.Session.QueryOver(() => za).JoinAlias(() => za.StrassenabschnittGIS, () => sa); var queryOver = filtererFactory.CreateFilterer <ZustandsabschnittGIS>(parameter).Filter(joinAlias); if (ErfassungsPeriodService.GetCurrentErfassungsPeriod().NetzErfassungsmodus == NetzErfassungsmodus.Gis) { queryOver = zustandProZustandsabschnittMapProvider.FilterForBoundingBox(queryOver, parameter); } return(queryOver.Fetch(z => z.StrassenabschnittGIS).Eager.Fetch(z => z.StrassenabschnittGIS.Belastungskategorie).Eager.List <ZustandsabschnittGIS>().Select(CreatePo) .OrderBy(z => z.Strassenname) .ThenBy(z => z.Strassenabschnittsnummer) .ThenBy(z => z.StrasseBezeichnungVon) .ThenBy(z => z.Abschnittsnummer) .ThenBy(z => z.BezeichnungVon) .ToList()); }
private void CalculatePos(Parameter parameter) { List <ErfassungsPeriod> erfassungsPeriodList = ErfassungsPeriodService.GetErfassungsPeriods(parameter.ErfassungsPeriodIdVon, parameter.ErfassungsPeriodIdBis).ToList(); for (int i = 0; i < erfassungsPeriodList.Count; i++) { var erfassungsPeriod = erfassungsPeriodList[i]; var jahresInterval = jahresIntervalService.CalculateFromErfassungsPeriodList(erfassungsPeriod, erfassungsPeriodList); switch (erfassungsPeriod.NetzErfassungsmodus) { case NetzErfassungsmodus.Summarisch: continue; case NetzErfassungsmodus.Tabellarisch: var zustandsabschnittList = filtererFactory .CreateFilterer <Zustandsabschnitt>(parameter) .Filter(transactionScopeProvider.Queryable <Zustandsabschnitt>().Where(za => za.Strassenabschnitt.ErfassungsPeriod == erfassungsPeriod)) .Fetch(s => s.Strassenabschnitt) .ToArray(); CalculatePosForErfassungsPeriod <Zustandsabschnitt, Strassenabschnitt>(zustandsabschnittList, jahresInterval, erfassungsPeriod); break; case NetzErfassungsmodus.Gis: var zustandsabschnittGisList = filtererFactory .CreateFilterer <ZustandsabschnittGIS>(parameter) .Filter(transactionScopeProvider.Queryable <ZustandsabschnittGIS>().Where(za => za.StrassenabschnittGIS.ErfassungsPeriod == erfassungsPeriod)) .Fetch(s => s.StrassenabschnittGIS) .ToArray(); CalculatePosForErfassungsPeriod <ZustandsabschnittGIS, StrassenabschnittGIS>(zustandsabschnittGisList, jahresInterval, erfassungsPeriod); break; default: throw new ArgumentOutOfRangeException("NetzErfassungsmodus"); } } }
private void CalculatePosForJahr <T>(ErfassungsPeriod erfassungsPeriod, List <T> entityList, JahresInterval jahresInterval, Func <T, WiederbeschaffungswertKatalogModel, decimal> getWiederBeschaffungswert, Func <T, Belastungskategorie> getBelastungskategorie, Func <T, decimal> getFlaeche) { if (!diagramPos.ContainsKey(jahresInterval.JahrBis)) { diagramPos[jahresInterval.JahrBis] = new List <DiagramPo>(); } if (!tablePos.ContainsKey(jahresInterval.JahrBis)) { tablePos[jahresInterval.JahrBis] = new List <TablePo>(); } var wiederbeschaffungswertUndWertverlustProJahrGrafischeDiagramPos = GetWiederbeschaffungswertUndWertverlustProJahrGrafischeDiagramPos(jahresInterval); foreach (var netzSummarischDetail in entityList) { var belastungskategorie = getBelastungskategorie(netzSummarischDetail); var wieder = wiederbeschaffungswertKatalogService.GetWiederbeschaffungswertKatalogModel(belastungskategorie, erfassungsPeriod); var wiederbeschaffungswert = getWiederBeschaffungswert(netzSummarischDetail, wieder); var diagramPo = wiederbeschaffungswertUndWertverlustProJahrGrafischeDiagramPos[belastungskategorie.Id]; //Note: divided by 1 000 (1000m2) diagramPo.FlaecheFahrbahn += getFlaeche(netzSummarischDetail) / 1000m; //Note: divided by 1 000 000 (Mio. CHF) infro from sample excel diagramPo.WiederBeschaffungsWert += wiederbeschaffungswert / 1000000m; //Note: divided by 1 000 (kCHF) diagramPo.WertVerlust += (wiederbeschaffungswert * wieder.AlterungsbeiwertII / 100) / 1000; } diagramPos[jahresInterval.JahrBis].AddRange(wiederbeschaffungswertUndWertverlustProJahrGrafischeDiagramPos.Values); var currentJahr = ErfassungsPeriodService.GetCurrentErfassungsPeriod().Erfassungsjahr.Year; var wiederbeschaffungswertUndWertverlustProJahrGrafischeTablePos = wiederbeschaffungswertUndWertverlustProJahrGrafischeDiagramPos.Values .Select(po => new TablePo { CurrentJahr = currentJahr, AktualString = LocalizationService.GetLocalizedText("CurrentShort"), JahrVon = jahresInterval.JahrVon, JahrBis = jahresInterval.JahrBis, Value = po.FlaecheFahrbahn, Bezeichnung = po.BelastungskategorieBezeichnung + " " + reportLocalizationService.TausendQuadratMeter, ColorCode = po.ColorCode, LegendUrl = reportLegendImageService.GetLegendUrl(po.BelastungskategorieTyp), SortOrder = belastungskategorieService.AlleBelastungskategorie.IndexOf(belastungskategorieService.AlleBelastungskategorie.Single(bk => bk.Id == po.BelastungskategorieId)) }); tablePos[jahresInterval.JahrBis].AddRange(wiederbeschaffungswertUndWertverlustProJahrGrafischeTablePos); tablePos[jahresInterval.JahrBis].Add(new TablePo { CurrentJahr = currentJahr, AktualString = LocalizationService.GetLocalizedText("CurrentShort"), JahrVon = jahresInterval.JahrVon, JahrBis = jahresInterval.JahrBis, Value = wiederbeschaffungswertUndWertverlustProJahrGrafischeDiagramPos.Values.Sum(po => po.FlaecheFahrbahn), Bezeichnung = reportLocalizationService.GesamtFlaeche, SortOrder = 10 }); tablePos[jahresInterval.JahrBis].Add(new TablePo { CurrentJahr = currentJahr, AktualString = LocalizationService.GetLocalizedText("CurrentShort"), JahrVon = jahresInterval.JahrVon, JahrBis = jahresInterval.JahrBis, Value = wiederbeschaffungswertUndWertverlustProJahrGrafischeDiagramPos.Values.Sum(po => po.WertVerlust), Bezeichnung = reportLocalizationService.WV, ColorCode = "#8b0000", LegendUrl = reportLegendImageService.GetLegendUrl("WV"), SortOrder = 20 }); tablePos[jahresInterval.JahrBis].Add(new TablePo { CurrentJahr = currentJahr, AktualString = LocalizationService.GetLocalizedText("CurrentShort"), JahrVon = jahresInterval.JahrVon, JahrBis = jahresInterval.JahrBis, Value = wiederbeschaffungswertUndWertverlustProJahrGrafischeDiagramPos.Values.Sum(po => po.WiederBeschaffungsWert), Bezeichnung = reportLocalizationService.WBW, LegendUrl = reportLegendImageService.GetLegendUrl("WBW"), ColorCode = "#cd48ff", SortOrder = 30 }); }
private void CalculatePos(Parameter parameter) { int jahrVon = GetJahr(parameter.JahrIdVon); int jahrBis = GetJahr(parameter.JahrIdBis); var kenngroessenFruehererJahreList = kenngroessenFruehererJahreService.GetKenngroessenFruehererJahren(jahrVon, jahrBis); var erfassungsPeriodList = ErfassungsPeriodService.GetErfassungsPeriods(jahrVon, jahrBis); //If there is a Filter for not supported Field, Skip year if (parameter.Eigentuemer == null) { for (int i = 0; i < kenngroessenFruehererJahreList.Count; i++) { var kenngroessenFruehererJahre = kenngroessenFruehererJahreList[i]; int erfassungsJahrVon = kenngroessenFruehererJahre.Jahr; int erfassungsJahrBis; if (kenngroessenFruehererJahre == kenngroessenFruehererJahreList.Last()) { erfassungsJahrBis = erfassungsPeriodList.Any() ? erfassungsPeriodList.First().Erfassungsjahr.Year - 1 : erfassungsJahrVon; } else { erfassungsJahrBis = kenngroessenFruehererJahreList[i + 1].Jahr - 1; } CalculatePosForKenngroessenFruehererJahre(ErfassungsPeriodService.GetCurrentErfassungsPeriod(), kenngroessenFruehererJahre, new JahresInterval(erfassungsJahrVon, erfassungsJahrBis)); } } for (int i = 0; i < erfassungsPeriodList.Count; i++) { var erfassungsPeriod = erfassungsPeriodList[i]; var jahresInterval = jahresIntervalService.CalculateFromErfassungsPeriodList(erfassungsPeriod, erfassungsPeriodList); switch (erfassungsPeriod.NetzErfassungsmodus) { case NetzErfassungsmodus.Summarisch: //If there is a Filter for not supported Field, Skip year if (parameter.Eigentuemer != null) { continue; } var netzSummarischDetailList = netzSummarischDetailService.GetEntitiesBy(erfassungsPeriod).Fetch(nsd => nsd.Belastungskategorie).ToList(); CalculatePosForSummarischeModus(erfassungsPeriod, netzSummarischDetailList, jahresInterval); break; case NetzErfassungsmodus.Tabellarisch: var strassenabschnittList = transactionScopeProvider.Queryable <Strassenabschnitt>().Where(sa => sa.ErfassungsPeriod == erfassungsPeriod); CalculatePosForStrassenModus(erfassungsPeriod, strassenabschnittList, parameter, jahresInterval); break; case NetzErfassungsmodus.Gis: var strassenabschnittGisList = transactionScopeProvider.Queryable <StrassenabschnittGIS>().Where(sa => sa.ErfassungsPeriod == erfassungsPeriod); CalculatePosForStrassenModus(erfassungsPeriod, strassenabschnittGisList, parameter, jahresInterval); break; default: throw new ArgumentOutOfRangeException("NetzErfassungsmodus"); } } }
protected override bool IsForClosedErfassungsPeriod(TReportParameter parameter) { var erfassungsPeriod = ErfassungsPeriodService.GetEntityById(parameter.JahrId); return(erfassungsPeriod != null && erfassungsPeriod.IsClosed); }
protected override bool IsForClosedErfassungsPeriod(Parameter parameter) { return(ErfassungsPeriodService.GetEntityById(parameter.ErfassungsPeriodIdBis).IsClosed); }
private void CalculatePos(RealisiertenMassnahmenWertverlustZustandsindexProJahrGrafischeParameter parameter) { int jahrVon = GetJahr(parameter.JahrIdVon); int jahrBis = GetJahr(parameter.JahrIdBis); var kenngroessenFruehererJahreList = kenngroessenFruehererJahreService.GetKenngroessenFruehererJahren(jahrVon, jahrBis); var erfassungsPeriodList = ErfassungsPeriodService.GetErfassungsPeriods(jahrVon, jahrBis); //If there is a Filter for not supported Field, Skip year if (parameter.Eigentuemer == null) { for (int i = 0; i < kenngroessenFruehererJahreList.Count; i++) { var kenngroessenFruehererJahre = kenngroessenFruehererJahreList[i]; int erfassungsJahrVon = kenngroessenFruehererJahre.Jahr; int erfassungsJahrBis; if (kenngroessenFruehererJahre == kenngroessenFruehererJahreList.Last()) { erfassungsJahrBis = erfassungsPeriodList.Any() ? erfassungsPeriodList.First().Erfassungsjahr.Year - 1 : erfassungsJahrVon; } else { erfassungsJahrBis = kenngroessenFruehererJahreList[i + 1].Jahr - 1; } CalculatePosForKenngroessenFruehererJahre(ErfassungsPeriodService.GetCurrentErfassungsPeriod(), kenngroessenFruehererJahre, new JahresInterval(erfassungsJahrVon, erfassungsJahrBis)); } } for (int i = 0; i < erfassungsPeriodList.Count; i++) { var erfassungsPeriod = erfassungsPeriodList[i]; var jahresInterval = jahresIntervalService.CalculateFromErfassungsPeriodList(erfassungsPeriod, erfassungsPeriodList); switch (erfassungsPeriod.NetzErfassungsmodus) { case NetzErfassungsmodus.Summarisch: //If there is a Filter for not supported Field, Skip year if (parameter.Eigentuemer != null) { continue; } CalculatePosForSummarischeModus(erfassungsPeriod, jahresInterval); break; case NetzErfassungsmodus.Tabellarisch: CalculatePosForStrassenModus(erfassungsPeriod, parameter, jahresInterval); break; case NetzErfassungsmodus.Gis: CalculatePosForStrassenModusGIS(erfassungsPeriod, parameter, jahresInterval); break; default: throw new ArgumentOutOfRangeException("NetzErfassungsmodus"); } } }