public ActionResult Edit(PageCreateOrEditViewModel vmObj) { return(UpdateUsingViewModel(vmObj, (o) => { //Convert the ViewModel to DB Object (Model) var dbObj = db.Set <Page>().Where(x => x.Id == vmObj.Id).FirstOrDefault(); var newPermalink = ValidatePermalinkName(vmObj.PermalinkName, dbObj.Permalink.Name); dbObj.Permalink.Name = !string.IsNullOrEmpty(newPermalink) ? newPermalink : dbObj.Permalink.Name; dbObj.Name = vmObj.Name; dbObj.Title = vmObj.Title; dbObj.Description = vmObj.Description; dbObj.Keywords = vmObj.Keywords; dbObj.Tags = vmObj.Tags; dbObj.ParentId = !string.IsNullOrEmpty(vmObj.ParentName) ? vmObj.ParentId : null; dbObj.TemplateName = vmObj.TemplateName; dbObj.IncludeInMenu = vmObj.IncludeInMenu; dbObj.IsDraft = vmObj.IsDraft; dbObj.IsPublished = vmObj.IsPublished; dbObj.ActiveFrom = vmObj.ActiveFrom; dbObj.ActiveTo = vmObj.ActiveTo; dbObj.IsRssFeed = vmObj.IsRssFeed; dbObj.ChangeEvent = UpdateChangeEvent(dbObj.ChangeEventId); return dbObj; }, null, "CreateOrEdit")); }
public ActionResult Create() { IViewModelBase viewModel = null; AddViewBagCreateEdit(null); viewModel = new PageCreateOrEditViewModel() { IsDraft = false, IsPublished = true, IsRssFeed = false }; return(Create <Page>("CreateOrEdit", viewModel)); }
public ActionResult Create(PageCreateOrEditViewModel vmObj) { return(CreateUsingViewModel(vmObj, (parent) => { var permalinkName = ValidatePermalinkName(vmObj.PermalinkName, ""); if (string.IsNullOrEmpty(permalinkName)) { return null; } else { var permalink = new Permalink() { Name = permalinkName, Type = null, ChangeEvent = CreateChangeEvent() }; db.Permalinks.Add(permalink); //Convert the ViewModel to DB Object (Model) var dbObj = new Page() { Id = vmObj.Id, Name = vmObj.Name, Title = vmObj.Title, Description = vmObj.Description, Keywords = vmObj.Keywords, Tags = vmObj.Tags, //Content = vmObj.Content.ToList(), Parent = vmObj.Parent, //Pages = vmObj.Pages.ToList(), PermalinkId = vmObj.PermalinkId, Permalink = permalink, TemplateName = vmObj.TemplateName, IncludeInMenu = vmObj.IncludeInMenu, IsDraft = vmObj.IsDraft, IsPublished = vmObj.IsPublished, ActiveFrom = vmObj.ActiveFrom, ActiveTo = vmObj.ActiveTo, IsRssFeed = vmObj.IsRssFeed, ChangeEventId = vmObj.ChangeEventId, ChangeEvent = vmObj.ChangeEvent }; return dbObj; } }, null, "CreateOrEdit")); }
public ActionResult Edit(int?id) { var o = db.Set <Page>().Where(x => x.Id == id).FirstOrDefault(); IViewModelBase viewModel = null; if (o != null) { AddViewBag(o); viewModel = new PageCreateOrEditViewModel() { Id = o.Id, Name = o.Name, Title = o.Title, Description = o.Description, Keywords = o.Keywords, Tags = o.Tags, //Content = o.Content, Parent = o.Parent, ParentId = o.Parent != null ? new Nullable <int>(o.Parent.Id) : null, ParentName = o.Parent != null ? o.Parent.Name : string.Empty, //Pages = o.Pages, PermalinkId = o.PermalinkId, Permalink = o.Permalink, PermalinkName = o.Permalink != null ? o.Permalink.Name : string.Empty, TemplateName = o.TemplateName, IncludeInMenu = o.IncludeInMenu, IsDraft = o.IsDraft, IsPublished = o.IsPublished, ActiveFrom = o.ActiveFrom, ActiveTo = o.ActiveTo, IsRssFeed = o.IsRssFeed, ChangeEventId = o.ChangeEventId, ChangeEvent = o.ChangeEvent }; } return(Edit <Page>("CreateOrEdit", viewModel)); }
public IActionResult CreateOrEdit([FromBody] PageCreateOrEditViewModel viewModel) { if (!ModelState.IsValid) { return(Json(new WebResult(resultState: ResultState.Error))); } var repo = UnitOfWork.Repository <Page>(); if (viewModel.IsNew) { var newPage = new Page { Created = DateTime.Now, ObjectState = ObjectState.Added, State = viewModel.State, Title = viewModel.Title, Content = viewModel.Content, Tags = viewModel.Tags, }; repo.SaveAllChanges(newPage); } else { var data = repo.First(k => k.Id == viewModel.Id); data.Modified = DateTime.Now; data.ObjectState = ObjectState.Modified; data.State = viewModel.State; data.Title = viewModel.Title; data.Content = viewModel.Content; data.Tags = viewModel.Tags; repo.SaveAllChanges(data); } return(Json(new WebResult(redirectUrl: Url.Action(nameof(Index), nameof(HomeController).ControllerName())))); }