public ActionResult Edit(PageModel pageModel) { var dynamicPage = new DynamicPageDto(); dynamicPage.InjectFrom(pageModel); var result = _adminPageService.SavePage(CurrentProfile.ClientId, dynamicPage, pageModel.IsHomePage); if (result.IsValid) { return RedirectToAction("Index"); } ModelState.AddModelError(string.Empty, result.ValidationSummaryToString()); return View(pageModel); }
public ValidationDictionary<DynamicPageDto> SavePage(int clientId, DynamicPageDto pageDto, bool setAsHomePage) { // validation first var validator = new ValidationDictionary<DynamicPageDto>(); if (pageDto == null) { validator.IsValid = false; validator.AddError("", "Page you're trying to save is null"); return validator; } // rule based if (setAsHomePage) { // get previous homepage, update it to another url path } DynamicPage dPage; if (pageDto.PageId <= 0) { // prepare object to save dPage = new DynamicPage(); dPage.PageName = pageDto.PageName; dPage.PageMenuName = pageDto.PageMenuName; dPage.PageUrl = pageDto.PageUrl; dPage.PageDescription = pageDto.PageDescription; dPage.PageContent = pageDto.PageContent; dPage.MetaTitle = pageDto.MetaTitle; dPage.MetaDescription = pageDto.MetaDescription; dPage.ClientId = clientId; dPage.DateCreated = DateTime.UtcNow; dPage.DateLastUpdated = DateTime.UtcNow; _pageRepository.Add(dPage); } else { var gExpression = _dynamicPageFilters.Init() .GetByPageId(pageDto.PageId) .GetByClientId(clientId) .GetNotDeleted() .FilterExpression; dPage = _pageRepository.FindBy(gExpression); if (dPage != null) { dPage.PageName = pageDto.PageName; dPage.PageMenuName = pageDto.PageMenuName; dPage.PageUrl = pageDto.PageUrl; dPage.PageDescription = pageDto.PageDescription; dPage.PageContent = pageDto.PageContent; dPage.MetaTitle = pageDto.MetaTitle; dPage.MetaDescription = pageDto.MetaDescription; dPage.DateLastUpdated = DateTime.UtcNow; dPage.IsDeleted = false; _pageRepository.Update(dPage); } } dPage = dPage ?? new DynamicPage(); var pingedPaged = GetPage(clientId, dPage.PageId); validator.IsValid = true; validator.RelatedObject = pingedPaged; return validator; }