示例#1
0
        public IActionResult Edit(int id, int pageRouteVersionId)
        {
            SectionViewModel sectionVm = _dynamicPageSectionVersionRepository.Get(id, pageRouteVersionId);


            List <PageSectionType>   sectionTypes = _dynamicPageSectionRepository.GetPageSectionTypes();
            PageSectionEditViewModel viewModel    = new PageSectionEditViewModel(sectionTypes, sectionVm);

            viewModel.Id = id;
            viewModel.pageRouteVersionId = pageRouteVersionId;
            PageRouteVersion pageRouteVersion = _pageRouteVersionRepository.Get(pageRouteVersionId);
            var notification = _approvalNotificationsRepository.GetByRelatedIdAndType(pageRouteVersion.Id, ChangeType.PageContent);

            ViewBag.DisableEditFlage = false;
            if (notification != null && notification.VersionStatusEnum == VersionStatusEnum.Submitted)
            {
                ViewBag.DisableEditFlage = true;
            }
            if (pageRouteVersion == null)
            {
                return(NotFound());
            }
            ViewBag.DynamicPageName = pageRouteVersion.EnName;
            return(View(viewModel));
        }
示例#2
0
 /// <summary>
 /// Remove Tags From Description in edit method
 /// </summary>
 /// <param name="sectionViewModel">page section object data</param>
 /// <returns></returns>
 private PageSectionEditViewModel RemoveTagsFromDescription(PageSectionEditViewModel sectionViewModel)
 {
     if (sectionViewModel.Section.ArDescription != null)
     {
         sectionViewModel.Section.ArDescription = sectionViewModel.Section.ArDescription.Replace("<p>", "");
         sectionViewModel.Section.ArDescription = sectionViewModel.Section.ArDescription.Replace("</p>", "");
     }
     if (sectionViewModel.Section.EnDescription != null)
     {
         sectionViewModel.Section.EnDescription = sectionViewModel.Section.EnDescription.Replace("<p>", "");
         sectionViewModel.Section.EnDescription = sectionViewModel.Section.EnDescription.Replace("</p>", "");
     }
     return(sectionViewModel);
 }
示例#3
0
        public IActionResult Edit(PageSectionEditViewModel sectionViewModel)
        {
            RemoveFieldsFromModelStateDependOnSectionType(ModelState, sectionViewModel.SectionTypeId.Value);

            sectionViewModel.Section.EnDescription.ValidateHtml("EnDescription", ModelState);
            sectionViewModel.Section.ArDescription.ValidateHtml("ArDescription", ModelState);

            if (ModelState.IsValid)
            {
                sectionViewModel = RemoveTagsFromDescription(sectionViewModel);

                PageSectionVersion pageSectionVersion = sectionViewModel.MapToPageSectionVersion();

                string oldFilePath = null;
                var    sectionType = _dynamicPageSectionRepository.GetPageSectionType(sectionViewModel.SectionTypeId.Value);
                if (sectionType.MediaType == SectionMediaType.Image.ToString() && sectionViewModel.Section.Photo != null)
                {
                    oldFilePath            = pageSectionVersion.Url;
                    pageSectionVersion.Url = _fileService.UploadImageUrlNew(sectionViewModel.Section.Photo);
                }
                if (sectionType.MediaType == SectionMediaType.Video.ToString())
                {
                    pageSectionVersion.Url = sectionViewModel.Section.Url;
                }

                PageSectionVersion newPageSectionVersion = _dynamicPageSectionVersionRepository.Update(pageSectionVersion);
                if (newPageSectionVersion != null)
                {
                    if (oldFilePath != null)
                    {
                        _fileService.RemoveImage(oldFilePath);
                    }
                    _toastNotification.AddSuccessToastMessage(ToasrMessages.EditSuccess);
                    _eventLogger.LogInfoEvent(HttpContext.User.Identity.Name, Common.ActivityEnum.Update, "Dynamic Page > " + ViewBag.DynamicPageName + " > Sections > Edit", newPageSectionVersion.EnTitle);

                    return(RedirectToAction("Index", new { pageRouteVersionId = newPageSectionVersion.PageRouteVersionId }));
                }
                _eventLogger.LogInfoEvent(HttpContext.User.Identity.Name, Common.ActivityEnum.Warning, "Dynamic Page > " + ViewBag.DynamicPageName + " > Sections > Warning in Edit", pageSectionVersion.EnTitle);
                _toastNotification.AddErrorToastMessage(ToasrMessages.warning);
                return(View(sectionViewModel));
            }

            List <PageSectionType> sectionTypes = _dynamicPageSectionRepository.GetPageSectionTypes();

            sectionViewModel.SectionTypes = sectionTypes;

            return(View(sectionViewModel));
        }
        public static PageSectionVersion MapToPageSectionVersion(this PageSectionEditViewModel dynamicPageSectionViewModel)
        {
            PageSectionVersion pageSectionVersion = new PageSectionVersion();

            pageSectionVersion.Id                 = dynamicPageSectionViewModel.Id;
            pageSectionVersion.EnTitle            = dynamicPageSectionViewModel.Section.EnTitle;
            pageSectionVersion.ArTitle            = dynamicPageSectionViewModel.Section.ArTitle;
            pageSectionVersion.EnDescription      = dynamicPageSectionViewModel.Section.EnDescription;
            pageSectionVersion.ArDescription      = dynamicPageSectionViewModel.Section.ArDescription;
            pageSectionVersion.EnImageAlt         = dynamicPageSectionViewModel.Section.EnImageAlt;
            pageSectionVersion.ArImageAlt         = dynamicPageSectionViewModel.Section.ArImageAlt;
            pageSectionVersion.Url                = dynamicPageSectionViewModel.Section.Url;
            pageSectionVersion.Order              = dynamicPageSectionViewModel.Section.Order;
            pageSectionVersion.IsActive           = dynamicPageSectionViewModel.Section.IsActive;
            pageSectionVersion.CreationDate       = dynamicPageSectionViewModel.Section.CreationDate.Value;
            pageSectionVersion.CreatedById        = dynamicPageSectionViewModel.Section.CreatedById;
            pageSectionVersion.PageSectionTypeId  = dynamicPageSectionViewModel.SectionTypeId.Value;
            pageSectionVersion.PageRouteVersionId = dynamicPageSectionViewModel.pageRouteVersionId;

            return(pageSectionVersion);
        }
示例#5
0
        public virtual PartialViewResult UpdateSectionAjax(PageSectionEditViewModel viewModel)
        {
            this._logActionsAsPageViews = false;
            bool quietOnSave = false;

            if (viewModel.IsAutoPosted)
            {
                quietOnSave = true;
            }
            if (viewModel.Index == 0)
            {
                ModelState.AddModelError("Index", "Index cannot be 0");
            }
            if (ModelState.IsValid)
            {
                PageSection pageSection = null;
                if (viewModel.PageSectionId.HasValue)
                {
                    try
                    {
                        pageSection = GStoreDb.UpdatePageSection(viewModel, CurrentStoreFrontOrThrow, CurrentUserProfileOrThrow);
                        if (!quietOnSave)
                        {
                            AddUserMessage("Section Changes Saved!", "Page Section saved successfully", AppHtmlHelpers.UserMessageType.Success);
                        }
                        viewModel = new PageSectionEditViewModel(pageSection.PageTemplateSection, pageSection.Page, pageSection, viewModel.Index, viewModel.AutoSubmit);
                        return(PartialView("_SectionEditPartial", viewModel));
                    }
                    catch (Exception ex)
                    {
                        string errorMessage = "An error occurred while saving your changes to page section '" + viewModel.PageSectionId.ToString() + " \nError: '" + ex.GetType().FullName + "'";

                        if (CurrentUserProfileOrThrow.AspNetIdentityUserIsInRoleSystemAdmin())
                        {
                            errorMessage += " \nException.ToString(): '" + ex.ToString() + "'";
                        }
                        AddUserMessage("Error Updating Page Section [" + viewModel.PageSectionId + "]!", errorMessage.ToHtmlLines(), AppHtmlHelpers.UserMessageType.Danger);
                        ModelState.AddModelError("Ajax", errorMessage);
                    }
                }
                else
                {
                    try
                    {
                        pageSection = GStoreDb.CreatePageSection(viewModel, CurrentStoreFrontOrThrow, CurrentUserProfileOrThrow);
                        if (!quietOnSave)
                        {
                            AddUserMessage("Section Changes Saved!", "Page Section '" + pageSection.PageTemplateSection.Name.ToHtml() + "' [" + pageSection.PageSectionId + "] created successfully", AppHtmlHelpers.UserMessageType.Success);
                        }
                        viewModel = new PageSectionEditViewModel(pageSection.PageTemplateSection, pageSection.Page, pageSection, viewModel.Index, viewModel.AutoSubmit);
                        return(PartialView("_SectionEditPartial", viewModel));
                    }
                    catch (Exception ex)
                    {
                        string errorMessage = "An error occurred while creating page section '" + viewModel.PageSectionId.ToString()
                                              + "' for Page Template Section [" + viewModel.PageTemplateSectionId + "] \nError: '" + ex.GetType().FullName + "'";

                        if (CurrentUserProfileOrThrow.AspNetIdentityUserIsInRoleSystemAdmin())
                        {
                            errorMessage += " \nException.ToString(): '" + ex.ToString() + "'";
                        }
                        AddUserMessage("Error Creating Page Section [" + viewModel.PageSectionId + "]!", errorMessage.ToHtmlLines(), AppHtmlHelpers.UserMessageType.Danger);
                        ModelState.AddModelError("Ajax", errorMessage);
                    }
                }
            }
            else
            {
                AddUserMessage("Section Update Error", "There was an error with your entry. Please correct it.", AppHtmlHelpers.UserMessageType.Danger);
            }

            return(PartialView("_SectionEditPartial", viewModel));
        }