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)); }
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)); }
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); }
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); }
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 }); }
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); }
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); }
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); }