Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }