Ejemplo n.º 1
0
        protected ActionResult SaveSite(ImportSitesModel model, Trip trip, int siteId, bool saveUnlessOptionalErrors)
        {
            var siteModel = model.FindSiteById(siteId);
            var site      = trip.FindSiteById(siteId);

            Mapper.Map(siteModel, site);

            string modelPrefix = $"Sites[{model.Sites.IndexOf(siteModel)}].";

            this.ValidateMappedModel <Site, ImportSiteModel>(site, modelPrefix, ValidationTag.Required);
            if (!ModelState.IsValid)
            {
                return(Request.IsAjaxRequest() ?
                       PartialView("SitePartial", model).AddViewData("siteId", site.Id) : View(model));
            }

            this.ValidateMappedModel <Site, ImportSiteModel>(site, modelPrefix, ValidationTag.Optional);
            if (!ModelState.IsValid && saveUnlessOptionalErrors)
            {
                siteModel.HasOptionalError = true;
                model.HasOptionalErrors    = true;
                return(Request.IsAjaxRequest() ?
                       PartialView("SitePartial", model).AddViewData("siteId", site.Id) : View(model));
            }

            site.SetTripDefaults();
            Repositories.Imports.Save(trip);
            Uow.Persist();

            siteModel.IsEditing = false;
            return(Request.IsAjaxRequest() ?
                   PartialView("SitePartial", model).AddViewData("siteId", site.Id) : View(model));
        }
Ejemplo n.º 2
0
        protected ActionResult EditSite(ImportSitesModel model, Trip trip, int siteId)
        {
            var site = model.FindSiteById(siteId);

            site.IsEditing = true;

            return(Request.IsAjaxRequest() ?
                   PartialView("SitePartial", model).AddViewData("siteId", site.Id) : View(model));
        }
Ejemplo n.º 3
0
        protected ActionResult RemoveSite(ImportSitesModel model, Trip trip, int siteId)
        {
            var site = trip.FindSiteById(siteId);

            trip.RemoveSite(site);
            Repositories.Imports.Save(trip);
            Uow.Persist();

            var siteModel = model.FindSiteById(site.Id);

            model.RemoveSite(siteModel);
            model.Initialize();

            return(Request.IsAjaxRequest() ?
                   PartialView("SitesPartial", model) : (ActionResult)View(model));
        }
Ejemplo n.º 4
0
        protected ActionResult AddSite(ImportSitesModel model, Trip trip)
        {
            var site = trip.AddSite();

            trip.InitializeSites();
            Repositories.Imports.Save(trip);
            Uow.Persist();

            Mapper.Map(site, model.AddSite());
            model.Initialize();

            return(Request.IsAjaxRequest() ?
                   (model.Sites.Count > 2 ? PartialView("SitePartial", model).AddViewData("siteId", site.Id)
                : PartialView("SitesPartial", model))
                : View(model));
        }
Ejemplo n.º 5
0
        public virtual ActionResult Sites(
            [ModelBinder(typeof(ImportSitesModelBinder))] ImportSitesModel model,
            [ModelBinder(typeof(ImportInnerActionModel))] ImportInnerActionModel innerAction)
        {
            ModelState.Clear();

            var trip = Repositories.Imports.FindById(model.Id);

            if (!User.IsAuthorizedToEdit(trip))
            {
                return(new UnauthorizedResult());
            }

            trip.InitializeSites();

            if (innerAction.Equals(ImportModelLevel.Trip, ImportModelAction.SaveUnlessOptionalErrors) ||
                innerAction.Equals(ImportModelLevel.Trip, ImportModelAction.SaveIgnoringOptionalErrors))
            {
                return(SaveSites(model, trip, innerAction.Action == ImportModelAction.SaveUnlessOptionalErrors));
            }

            if (innerAction.Equals(ImportModelLevel.Trip, ImportModelAction.Add))
            {
                return(AddSite(model, trip));
            }

            if (innerAction.Equals(ImportModelLevel.Site, ImportModelAction.SaveUnlessOptionalErrors) ||
                innerAction.Equals(ImportModelLevel.Site, ImportModelAction.SaveIgnoringOptionalErrors))
            {
                return(SaveSite(model, trip, innerAction.Id, innerAction.Action == ImportModelAction.SaveUnlessOptionalErrors));
            }

            if (innerAction.Equals(ImportModelLevel.Site, ImportModelAction.Remove))
            {
                return(RemoveSite(model, trip, innerAction.Id));
            }

            if (innerAction.Equals(ImportModelLevel.Site, ImportModelAction.Edit))
            {
                return(EditSite(model, trip, innerAction.Id));
            }

            throw new NotImplementedException();
        }
Ejemplo n.º 6
0
        protected ActionResult SaveSites(ImportSitesModel model, Trip trip, bool saveUnlessOptionalErrors)
        {
            Mapper.Map(model, trip);

            trip.VisitSites((p, s) => this.ValidateMappedModel <Site, ImportSiteModel>(s, $"{p}.", ValidationTag.Required));
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            trip.VisitSites((p, s) => this.ValidateMappedModel <Site, ImportSiteModel>(s, $"{p}.", ValidationTag.Optional));
            if (!ModelState.IsValid && saveUnlessOptionalErrors)
            {
                model.HasOptionalErrors = true;
                return(View(model));
            }

            trip.Sites.Last().SetTripDefaults();
            Repositories.Imports.Save(trip);
            Uow.Persist();

            return(RedirectToAction(MVC.Import.Trees(trip.Id)));
        }