public void UpdateZustandsabschnittTrottoirModel(ZustandsabschnittdetailsTrottoirModel zustandsabschnittdetailsTrottoirModel)
        {
            //TODO: Use refleaction traslator
            ZustandsabschnittBase zustandsabschnittBase = GetZustandsabschnittBase(zustandsabschnittdetailsTrottoirModel.Id);

            zustandsabschnittBase.ZustandsindexTrottoirLinks = zustandsabschnittdetailsTrottoirModel.LinkeTrottoirZustandsindex;

            zustandsabschnittBase.MassnahmenvorschlagTrottoirLinks = zustandsabschnittdetailsTrottoirModel.LinkeTrottoirMassnahmenvorschlagKatalogId == null
                                                       ? null
                                                       : transactionScopeProvider.GetById <MassnahmenvorschlagKatalog>(zustandsabschnittdetailsTrottoirModel.LinkeTrottoirMassnahmenvorschlagKatalogId.Value);
            zustandsabschnittBase.KostenMassnahmenvorschlagTrottoirLinks = zustandsabschnittdetailsTrottoirModel.LinkeTrottoirKosten;
            zustandsabschnittBase.DringlichkeitTrottoirLinks             = zustandsabschnittdetailsTrottoirModel.LinkeTrottoirDringlichkeit;


            zustandsabschnittBase.ZustandsindexTrottoirRechts = zustandsabschnittdetailsTrottoirModel.RechteTrottoirZustandsindex;

            zustandsabschnittBase.MassnahmenvorschlagTrottoirRechts = zustandsabschnittdetailsTrottoirModel.RechteTrottoirMassnahmenvorschlagKatalogId == null
                                                        ? null
                                                        : transactionScopeProvider.GetById <MassnahmenvorschlagKatalog>(zustandsabschnittdetailsTrottoirModel.RechteTrottoirMassnahmenvorschlagKatalogId.Value);
            zustandsabschnittBase.KostenMassnahmenvorschlagTrottoirRechts = zustandsabschnittdetailsTrottoirModel.RechteTrottoirKosten;
            zustandsabschnittBase.DringlichkeitTrottoirRechts             = zustandsabschnittdetailsTrottoirModel.RechteTrottoirDringlichkeit;

            //Update back the Kosten and GesamtKosten calculated field
            zustandsabschnittdetailsTrottoirModel.LinkeTrottoirGesamtKosten  = zustandsabschnittBase.KostenTrottoirLinks;
            zustandsabschnittdetailsTrottoirModel.RechteTrottoirGesamtKosten = zustandsabschnittBase.KostenTrottoirRechts;
            zustandsabschnittdetailsTrottoirModel.LinkeTrottoirKosten        = GetKosten(zustandsabschnittBase.MassnahmenvorschlagTrottoirLinks, zustandsabschnittBase.KostenMassnahmenvorschlagTrottoirLinks);
            zustandsabschnittdetailsTrottoirModel.RechteTrottoirKosten       = GetKosten(zustandsabschnittBase.MassnahmenvorschlagTrottoirRechts, zustandsabschnittBase.KostenMassnahmenvorschlagTrottoirRechts);

            UpdateZustandsabschnittBase(zustandsabschnittBase);
        }
        public ActionResult SaveZustandsabschnittTrottoir(ZustandsabschnittdetailsTrottoirModel zustandsabschnittdetailsTrottoirModel)
        {
            if (ModelState.IsValid)
            {
                trottoirZustandServiceBase.UpdateZustandsabschnittTrottoirModel(zustandsabschnittdetailsTrottoirModel);
                return(new EmsgEmptyResult());
            }

            PrepareViewBagForTrottoir(zustandsabschnittdetailsTrottoirModel.LinkeTrottoirMassnahmenvorschlagKatalogId, zustandsabschnittdetailsTrottoirModel.RechteTrottoirMassnahmenvorschlagKatalogId, zustandsabschnittdetailsTrottoirModel.BelastungskategorieTyp);
            return(PartialView("EditZustandsabschnittTrottoir", zustandsabschnittdetailsTrottoirModel));
        }
        public ZustandsabschnittdetailsTrottoirModel GetZustandsabschnittTrottoirModel(Guid id)
        {
            //TODO: Use refleaction traslator
            ZustandsabschnittBase zustandsabschnittBase = GetZustandsabschnittBase(id);

            var zustandsabschnittdetailsTrottoirModel = new ZustandsabschnittdetailsTrottoirModel
            {
                Id                     = zustandsabschnittBase.Id,
                Strassenname           = zustandsabschnittBase.Strassenname,
                BelastungskategorieTyp = zustandsabschnittBase.BelastungskategorieTyp,
                BezeichnungVon         = zustandsabschnittBase.BezeichnungVon,
                BezeichnungBis         = zustandsabschnittBase.BezeichnungBis,
                Trottoir               = zustandsabschnittBase.StrassenabschnittBase.Trottoir,
            };

            var massnahmenvorschlagTrottoirLinks = zustandsabschnittBase.MassnahmenvorschlagTrottoirLinks;

            zustandsabschnittdetailsTrottoirModel.LinkeTrottoirDringlichkeit = zustandsabschnittBase.DringlichkeitTrottoirLinks;
            zustandsabschnittdetailsTrottoirModel.LinkeTrottoirKosten        = GetKosten(massnahmenvorschlagTrottoirLinks, zustandsabschnittBase.KostenMassnahmenvorschlagTrottoirLinks);
            zustandsabschnittdetailsTrottoirModel.LinkeTrottoirMassnahmenvorschlagKatalogId = massnahmenvorschlagTrottoirLinks == null ? (Guid?)null : massnahmenvorschlagTrottoirLinks.Id;


            zustandsabschnittdetailsTrottoirModel.LinkeTrottoirGesamtKosten  = zustandsabschnittBase.KostenTrottoirLinks;
            zustandsabschnittdetailsTrottoirModel.LinkeTrottoirZustandsindex = zustandsabschnittBase.ZustandsindexTrottoirLinks;

            var massnahmenvorschlagTrottoirRechts = zustandsabschnittBase.MassnahmenvorschlagTrottoirRechts;

            zustandsabschnittdetailsTrottoirModel.RechteTrottoirDringlichkeit = zustandsabschnittBase.DringlichkeitTrottoirRechts;
            zustandsabschnittdetailsTrottoirModel.RechteTrottoirKosten        = GetKosten(massnahmenvorschlagTrottoirRechts, zustandsabschnittBase.KostenMassnahmenvorschlagTrottoirRechts);
            zustandsabschnittdetailsTrottoirModel.RechteTrottoirMassnahmenvorschlagKatalogId = massnahmenvorschlagTrottoirRechts == null ? (Guid?)null : massnahmenvorschlagTrottoirRechts.Id;

            zustandsabschnittdetailsTrottoirModel.RechteTrottoirGesamtKosten  = zustandsabschnittBase.KostenTrottoirRechts;
            zustandsabschnittdetailsTrottoirModel.RechteTrottoirZustandsindex = zustandsabschnittBase.ZustandsindexTrottoirRechts;

            return(zustandsabschnittdetailsTrottoirModel);
        }