public void CopyMandantenDetailsData(ErfassungsPeriod closedPeriod) { mandantDetailsService.CreateCopy(closedPeriod); MandantDetails mandantDetails = mandantDetailsService.GetEntitiesBy(closedPeriod).Single(); switch (closedPeriod.NetzErfassungsmodus) { case NetzErfassungsmodus.Summarisch: mandantDetails.NetzLaenge = netzSummarischDetailService.GetEntitiesBy(closedPeriod).Sum(nsd => nsd.Fahrbahnlaenge); break; case NetzErfassungsmodus.Tabellarisch: mandantDetails.NetzLaenge = strassenabschnittService.GetEntitiesBy(closedPeriod).Sum(sa => (decimal?)sa.Laenge) ?? 0; break; case NetzErfassungsmodus.Gis: mandantDetails.NetzLaenge = strassenabschnittGISService.GetEntitiesBy(closedPeriod).Sum(sa => (decimal?)sa.Laenge) ?? 0; break; default: throw new ArgumentOutOfRangeException(); } //NetzLaenge's unit is km mandantDetails.NetzLaenge /= 1000m; transactionScopeProvider.Update(mandantDetails); }
public BenchmarkingData CalculateBenchmarkingDataForSummarischeModus(ErfassungsPeriod closedPeriod, MandantDetails mandantDetails) { var netzSummarischDetails = netzSummarischDetailService.GetEntitiesBy(closedPeriod, mandantDetails.Mandant).Fetch(nsd => nsd.NetzSummarisch).ToList(); var realisierteMassnahmeSummarsichen = realisierteMassnahmeSummarsichService.GetEntitiesBy(closedPeriod, mandantDetails.Mandant).ToList(); BenchmarkingData benchmarkingData = CalculateInventarBenchmarkingData(closedPeriod, mandantDetails, netzSummarischDetails, nsd => nsd.Fahrbahnlaenge); CalculateZustandsBenchmarkingData(benchmarkingData, netzSummarischDetails.ToList(), nsd => nsd.NetzSummarisch.MittleresErhebungsJahr, za => za.MittlererZustand); CalculateRealisierteMassnahmenBenchmarkingData(closedPeriod, benchmarkingData, mandantDetails, realisierteMassnahmeSummarsichen.ToList(), netzSummarischDetails); return(benchmarkingData); }
private void CalculatePosForSummarischeModus(ErfassungsPeriod erfassungsPeriod, JahresInterval jahresInterval) { var netzSummarischDetailList = netzSummarischDetailService.GetEntitiesBy(erfassungsPeriod).Fetch(nsd => nsd.Belastungskategorie).ToList(); var diagramPo = new RealisiertenMassnahmenWertverlustZustandsindexProJahrGrafischeDiagramPo() { JahrVon = jahresInterval.JahrVon, JahrBis = jahresInterval.JahrBis, WertVerlust = netzSummarischDetailList.Sum(d => (GetWiederbeschaffungswert(d, wiederbeschaffungswertKatalogService.GetWiederbeschaffungswertKatalogModel(d.Belastungskategorie, erfassungsPeriod)) * wiederbeschaffungswertKatalogService.GetWiederbeschaffungswertKatalogModel(d.Belastungskategorie, erfassungsPeriod).AlterungsbeiwertII / 100) / 1000m), MittlererZustandindex = netzSummarischDetailList.Average(d => d.MittlererZustand), RealisierteMassnahmen = (transactionScopeProvider.Queryable <RealisierteMassnahmeSummarsich>().Where(r => r.ErfassungsPeriod == erfassungsPeriod).Sum(s => s.KostenFahrbahn) ?? 0) / 1000m }; EnsureJahrInPoLists(jahresInterval); diagramPos[jahresInterval.JahrBis].Add(diagramPo); CalculateTablePos(jahresInterval, diagramPo); }
private void CopySummarischeModusData(ErfassungsPeriod closedPeriod) { var currentNetzSummarisch = netzSummarischService.GetCurrentNetzSummarisch(); var currentNetzSummarischDetails = netzSummarischDetailService.GetEntites(); var previousNetzSummarischDetails = netzSummarischDetailService.GetEntitiesBy(closedPeriod); foreach (var previous in previousNetzSummarischDetails.ToList()) { var current = currentNetzSummarischDetails.Single(nsd => nsd.Belastungskategorie == previous.Belastungskategorie); current.Fahrbahnflaeche = previous.Fahrbahnflaeche; current.Fahrbahnlaenge = previous.Fahrbahnlaenge; transactionScopeProvider.Update(current); } transactionScopeProvider.Update(currentNetzSummarisch); }
protected override List<WiederbeschaffungswertUndWertverlustProBelastungskategoriePo> GetPresentationObjectListForSummarisch(WiederbeschaffungswertUndWertverlustProBelastungskategorieParameter parameter) { var erfassungsPeriod = GetErfassungsPeriod(parameter.ErfassungsPeriodId); var netzSummarischDetailList = netzSummarischDetailService.GetEntitiesBy(erfassungsPeriod).ToList(); var pos = new List<WiederbeschaffungswertUndWertverlustProBelastungskategoriePo>(); foreach (var belastungskategorie in belastungskategorieService.AlleBelastungskategorie) { var netzSummarischDetail = netzSummarischDetailList.Single(sa => sa.Belastungskategorie.Id == belastungskategorie.Id); var wieder = wiederbeschaffungswertKatalogService.GetWiederbeschaffungswertKatalogModel(belastungskategorie, erfassungsPeriod); var wiederbeschaffungswert = netzSummarischDetail.Fahrbahnflaeche * wieder.GesamtflaecheFahrbahn; var zustandqueryable = zustandindexService.GetEntitiesBy(erfassungsPeriod); var zustandabschnitten = filtererFactory.CreateFilterer<Zustandsabschnitt>(parameter).Filter(zustandqueryable).Fetch(za => za.Strassenabschnitt).ThenFetch(za => za.Belastungskategorie).ToList().Cast<ZustandsabschnittBase>().ToList(); var po = new WiederbeschaffungswertUndWertverlustProBelastungskategoriePo { BelastungskategorieTyp = belastungskategorie.Typ, BelastungskategorieBezeichnung = LocalizationService.GetLocalizedBelastungskategorieTyp(belastungskategorie.Typ), GesamtFlaeche = netzSummarischDetail.Fahrbahnflaeche, FlaecheFahrbahn = netzSummarischDetail.Fahrbahnflaeche, Wiederbeschaffungswert = wiederbeschaffungswert, AlterungsbeiwertI = wieder.AlterungsbeiwertI, AlterungsbeiwertII = wieder.AlterungsbeiwertII, WertlustI = wiederbeschaffungswert * wieder.AlterungsbeiwertI / 100, WertlustII = wiederbeschaffungswert * wieder.AlterungsbeiwertII / 100, MittlererZustandindex = netzSummarischDetail.MittlererZustand, }; pos.Add(po); } return pos; }
protected override List <WiederbeschaffungswertUndWertverlustGrafischePo> GetPresentationObjectListForSummarisch(WiederbeschaffungswertUndWertverlustGrafischeParameter parameter) { ErfassungsPeriod erfassungsPeriod = GetErfassungsPeriod(parameter.ErfassungsPeriodId); List <NetzSummarischDetail> netzSummarischDetailes = netzSummarischDetailService.GetEntitiesBy(erfassungsPeriod).ToList(); var pos = new List <WiederbeschaffungswertUndWertverlustGrafischePo>(); foreach (var belastungskategorie in belastungskategorieService.AlleBelastungskategorie) { var wieder = wiederbeschaffungswertKatalogService.GetWiederbeschaffungswertKatalogModel(belastungskategorie, erfassungsPeriod); var netzSummarischDetail = netzSummarischDetailes.Single(nsd => nsd.Belastungskategorie.Id == belastungskategorie.Id); decimal wiederbeschaffungswert = netzSummarischDetail.Fahrbahnflaeche * wieder.FlaecheFahrbahn; pos.Add(CreateWiederbeschaffungswertUndWertverlustGrafischePo(belastungskategorie, reportLocalizationService.Wiederbeschaffungswert, wiederbeschaffungswert)); pos.Add(CreateWiederbeschaffungswertUndWertverlustGrafischePo(belastungskategorie, reportLocalizationService.WertverlustsI, wiederbeschaffungswert * wieder.AlterungsbeiwertI)); pos.Add(CreateWiederbeschaffungswertUndWertverlustGrafischePo(belastungskategorie, reportLocalizationService.WertverlustsII, wiederbeschaffungswert * wieder.AlterungsbeiwertII)); } return(pos); }
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 List <MengeProBelastungskategoriePo> GetPresentationObjectListForSummarisch(MengeProBelastungskategorieParameter parameter) { var netzSummarischDetails = netzSummarischDetailService.GetEntitiesBy(GetErfassungsPeriod(parameter.ErfassungsPeriodId)).Fetch(nsd => nsd.Belastungskategorie); return(netzSummarischDetails.Select(CreatePo).OrderBy(m => m.BelastungskategorieReihenfolge).ToList()); }