public void CalculateBenchmarkingData(ErfassungsPeriod closedPeriod) { var mandantDetails = mandantDetailsService.GetEntitiesBy(closedPeriod).Single(); BenchmarkingData benchmarkingData; switch (closedPeriod.NetzErfassungsmodus) { case NetzErfassungsmodus.Summarisch: benchmarkingData = CalculateBenchmarkingDataForSummarischeModus(closedPeriod, mandantDetails); break; case NetzErfassungsmodus.Tabellarisch: benchmarkingData = CalculateBenchmarkingDataForTabellarischeModus(closedPeriod, mandantDetails); break; case NetzErfassungsmodus.Gis: benchmarkingData = CalculateBenchmarkingDataForGisModus(closedPeriod, mandantDetails); break; default: throw new ArgumentOutOfRangeException(); } transactionScopeProvider.Create(benchmarkingData); }
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); }