Example #1
0
 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);
 }
Example #2
0
        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;
        }