Example #1
0
        public ZustandsabschnittdetailsModel GetDefaultZustandsabschnittdetailsModel(Guid strassenabschnittId, ZustandsErfassungsmodus zustandsErfassungsmodus)
        {
            var strassenabschnittBase         = GetStrassenabschnittBase(strassenabschnittId);
            var zustandsabschnittdetailsModel = new ZustandsabschnittdetailsModel
            {
                Erfassungsmodus        = zustandsErfassungsmodus,
                Strassenname           = strassenabschnittBase.Strassenname,
                BelastungskategorieTyp = strassenabschnittBase.BelastungskategorieTyp,
                BezeichnungVon         = strassenabschnittBase.BezeichnungVon,
                BezeichnungBis         = strassenabschnittBase.BezeichnungBis,
                SchadengruppeModelList = new List <SchadengruppeModel>(),
                IsLocked              = IsLocked(strassenabschnittBase),
                Belag                 = strassenabschnittBase.Belag,
                IsGrobInitializiert   = false,
                IsDetailInitializiert = false
            };

            if (zustandsErfassungsmodus != ZustandsErfassungsmodus.Manuel)
            {
                zustandsabschnittdetailsModel.SchadengruppeModelList = schadenMetadatenService
                                                                       .GetSchadengruppeMetadaten(strassenabschnittBase.Belag)
                                                                       .Select(s => CreateSchadengruppeModel(s, zustandsErfassungsmodus))
                                                                       .ToList();
            }

            return(zustandsabschnittdetailsModel);
        }
        public ActionResult EditZustandsabschnittFahrbahn(Guid id)
        {
            ZustandsabschnittdetailsModel zustandsabschnittdetailsModel = fahrbahnZustandServiceBase.GetZustandsabschnittdetailsModel(id);

            PrepareViewBagForFahrbahn(zustandsabschnittdetailsModel.MassnahmenvorschlagKatalog, zustandsabschnittdetailsModel.BelastungskategorieTyp);
            return(PartialView(zustandsabschnittdetailsModel));
        }
Example #3
0
        public void ZustandsindexCalculationInManuelMode()
        {
            ZustandsabschnittdetailsModel zustandsabschnittdetailsModel = new ZustandsabschnittdetailsModel();

            zustandsabschnittdetailsModel.Erfassungsmodus = ZustandsErfassungsmodus.Manuel;
            zustandsabschnittdetailsModel.Zustandsindex   = 3.5m;

            Assert.AreEqual(3.5m, zustandsabschnittdetailsModel.ZustandsindexCalculated);
        }
        public ActionResult ApplySaveZustandsabschnittFahrbahn(ZustandsabschnittdetailsModel zustandsabschnittdetailsModel)
        {
            if (ModelState.IsValid)
            {
                fahrbahnZustandServiceBase.UpdateZustandsabschnittdetails(zustandsabschnittdetailsModel);
                ModelState.Clear();
            }

            PrepareViewBagForFahrbahn(zustandsabschnittdetailsModel.MassnahmenvorschlagKatalog, zustandsabschnittdetailsModel.BelastungskategorieTyp);
            return(PartialView("EditZustandsabschnittFahrbahn", zustandsabschnittdetailsModel));
        }
Example #5
0
        public void ZustandsindexCalculationInDetailedModeWithResultMoreThenFive()
        {
            ZustandsabschnittdetailsModel zustandsabschnittdetailsModel = new ZustandsabschnittdetailsModel();

            zustandsabschnittdetailsModel.Erfassungsmodus = ZustandsErfassungsmodus.Detail;
            AddOneSchadenGruppe(zustandsabschnittdetailsModel, SchadenausmassTyp.A3, SchadenschwereTyp.S3, 2);
            AddOneSchadenGruppe(zustandsabschnittdetailsModel, SchadenausmassTyp.A3, SchadenschwereTyp.S3, 2);
            AddOneSchadenGruppe(zustandsabschnittdetailsModel, SchadenausmassTyp.A3, SchadenschwereTyp.S3, 2);

            Assert.AreEqual(5m, zustandsabschnittdetailsModel.ZustandsindexCalculated);
        }
Example #6
0
        public void ZustandsindexCalculationInGrobModeWithResultMoreThenFive()
        {
            ZustandsabschnittdetailsModel zustandsabschnittdetailsModel = new ZustandsabschnittdetailsModel();

            zustandsabschnittdetailsModel.Erfassungsmodus = ZustandsErfassungsmodus.Grob;
            zustandsabschnittdetailsModel.SchadengruppeModelList.Add(new SchadengruppeModel {
                SchadenausmassTyp = SchadenausmassTyp.A2, SchadenschwereTyp = SchadenschwereTyp.S2, Gewicht = 20
            });

            Assert.AreEqual(5m, zustandsabschnittdetailsModel.ZustandsindexCalculated);
        }
Example #7
0
 private static void AddOneSchadenGruppe(ZustandsabschnittdetailsModel zustandsabschnittdetailsModel, SchadenausmassTyp schadenausmassTyp, SchadenschwereTyp schadenschwereTyp, int gewicht)
 {
     zustandsabschnittdetailsModel.SchadengruppeModelList.Add(new SchadengruppeModel
     {
         SchadendetailModelList = new List <SchadendetailModel>
         {
             new SchadendetailModel
             {
                 SchadenausmassTyp = schadenausmassTyp,
                 SchadenschwereTyp = schadenschwereTyp
             },
         },
         Gewicht = gewicht
     });
 }
Example #8
0
        public void UpdateZustandsabschnittdetails(ZustandsabschnittdetailsModel zustandsabschnittdetailsModel)
        {
            var zustandsabschnittBase = GetZustandsabschnittBase(zustandsabschnittdetailsModel.Id);

            zustandsabschnittBase.Erfassungsmodus = zustandsabschnittdetailsModel.Erfassungsmodus;

            zustandsabschnittBase.MassnahmenvorschlagFahrbahn = zustandsabschnittdetailsModel.MassnahmenvorschlagKatalog == null ? null : transactionScopeProvider.GetById <MassnahmenvorschlagKatalog>(zustandsabschnittdetailsModel.MassnahmenvorschlagKatalog.Value);
            zustandsabschnittBase.DringlichkeitFahrbahn       = zustandsabschnittdetailsModel.Dringlichkeit;

            if (zustandsabschnittBase.MassnahmenvorschlagFahrbahn == null)
            {
                zustandsabschnittBase.KostenMassnahmenvorschlagFahrbahn = null;
            }
            else
            {
                zustandsabschnittBase.KostenMassnahmenvorschlagFahrbahn =
                    zustandsabschnittBase.KostenMassnahmenvorschlagFahrbahn == zustandsabschnittBase.MassnahmenvorschlagFahrbahn.DefaultKosten
                        ? null
                        : zustandsabschnittdetailsModel.Kosten;
            }

            //Update back the Kosten and KostenFahrbahn calculated field
            zustandsabschnittdetailsModel.KostenFahrbahn = zustandsabschnittBase.KostenFahrbahn;
            zustandsabschnittdetailsModel.Kosten         = GetKosten(zustandsabschnittBase.MassnahmenvorschlagFahrbahn, zustandsabschnittBase.Kosten);
            zustandsabschnittdetailsModel.Belag          = zustandsabschnittBase.StrassenabschnittBase.Belag;

            DeleteSchadenData(zustandsabschnittBase);

            switch (zustandsabschnittdetailsModel.Erfassungsmodus)
            {
            case ZustandsErfassungsmodus.Manuel:
                zustandsabschnittBase.Zustandsindex = zustandsabschnittdetailsModel.Zustandsindex.Value;
                break;

            case ZustandsErfassungsmodus.Grob:
                zustandsabschnittBase.Zustandsindex = zustandsabschnittdetailsModel.ZustandsindexCalculated;
                GetSchadengruppen(zustandsabschnittdetailsModel.SchadengruppeModelList).ForEach(zustandsabschnittBase.AddSchadengruppe);
                break;

            case ZustandsErfassungsmodus.Detail:
                zustandsabschnittBase.Zustandsindex = zustandsabschnittdetailsModel.ZustandsindexCalculated;
                CreateSchadendetails(zustandsabschnittdetailsModel.SchadengruppeModelList.SelectMany(sg => sg.SchadendetailModelList)).ForEach(zustandsabschnittBase.AddSchadendetail);
                break;
            }

            UpdateZustandsabschnittBase(zustandsabschnittBase);
        }
Example #9
0
        public void ZustandsindexCalculationInDetailedModeWithResultLessThenFive()
        {
            ZustandsabschnittdetailsModel zustandsabschnittdetailsModel = new ZustandsabschnittdetailsModel();

            zustandsabschnittdetailsModel.Erfassungsmodus = ZustandsErfassungsmodus.Detail;
            zustandsabschnittdetailsModel.SchadengruppeModelList.Add(new SchadengruppeModel
            {
                SchadendetailModelList = new List <SchadendetailModel>
                {
                    new SchadendetailModel {
                        SchadenausmassTyp = SchadenausmassTyp.A3, SchadenschwereTyp = SchadenschwereTyp.S3
                    }
                },
                Gewicht = 1
            });

            Assert.AreEqual(0.9m, zustandsabschnittdetailsModel.ZustandsindexCalculated);
        }
Example #10
0
        private ZustandsabschnittdetailsModel CreateZustandsabschnittdetailsModel(ZustandsabschnittBase zustandsabschnittBase, ZustandsErfassungsmodus zustandsErfassungsmodus)
        {
            var zustandsabschnittdetailsModel = new ZustandsabschnittdetailsModel
            {
                Id = zustandsabschnittBase.Id,
                Erfassungsmodus            = zustandsErfassungsmodus,
                Strassenname               = zustandsabschnittBase.Strassenname,
                BelastungskategorieTyp     = zustandsabschnittBase.BelastungskategorieTyp,
                BezeichnungVon             = zustandsabschnittBase.BezeichnungVon,
                BezeichnungBis             = zustandsabschnittBase.BezeichnungBis,
                Zustandsindex              = zustandsabschnittBase.Zustandsindex,
                SchadengruppeModelList     = new List <SchadengruppeModel>(),
                Dringlichkeit              = zustandsabschnittBase.Dringlichkeit,
                MassnahmenvorschlagKatalog = zustandsabschnittBase.MassnahmenvorschlagKatalogId,
                KostenFahrbahn             = zustandsabschnittBase.KostenFahrbahn,
                IsLocked = (zustandsabschnittBase is ZustandsabschnittGIS) && ((ZustandsabschnittGIS)zustandsabschnittBase).IsLocked,
                Belag    = zustandsabschnittBase.Belag,
            };

            if (zustandsabschnittBase.Erfassungsmodus == zustandsErfassungsmodus)
            {
                zustandsabschnittdetailsModel.IsDetailInitializiert = zustandsErfassungsmodus == ZustandsErfassungsmodus.Detail;
                zustandsabschnittdetailsModel.IsGrobInitializiert   = zustandsErfassungsmodus == ZustandsErfassungsmodus.Grob;
            }
            else
            {
                zustandsabschnittdetailsModel.IsDetailInitializiert = false;
                zustandsabschnittdetailsModel.IsGrobInitializiert   = false;
            }

            zustandsabschnittdetailsModel.Kosten = GetKosten(zustandsabschnittBase.MassnahmenvorschlagFahrbahn, zustandsabschnittBase.Kosten);

            if (zustandsErfassungsmodus != ZustandsErfassungsmodus.Manuel)
            {
                zustandsabschnittdetailsModel.SchadengruppeModelList = schadenMetadatenService
                                                                       .GetSchadengruppeMetadaten(zustandsabschnittBase.StrassenabschnittBase.Belag)
                                                                       .Select(s => CreateSchadengruppeModel(s, zustandsabschnittBase, zustandsErfassungsmodus))
                                                                       .ToList();
            }

            return(zustandsabschnittdetailsModel);
        }