private async Task <IActionResult> GetDetails(int id, int approvalId)
        {
            var user = await _userManager.GetUserAsync(HttpContext.User);

            var roles = await _userManager.GetRolesAsync(user);

            PageRouteVersion pageRouteVersion = _pageRouteVersionRepository.Get(id);
            var notification = _approvalNotificationsRepository.GetByPageNameAndChangeType(pageRouteVersion.EnName, ChangeType.BasicInfo);

            ViewBag.DisableEditFlage = false;
            if (notification != null && notification.VersionStatusEnum == VersionStatusEnum.Submitted)
            {
                ViewBag.DisableEditFlage = true;
            }
            if (pageRouteVersion == null || (roles.Contains(UserRolesConst.MediaCenterContentManager) && (pageRouteVersion.ControllerName != "News" && pageRouteVersion.ControllerName != "PhotoArchive" && pageRouteVersion.ControllerName != "EventCalendar")))
            {
                return(NotFound());
            }

            List <NavItem>         navItems  = _navItemRepository.Get().ToList();
            PageRouteEditViewModel viewModel = new PageRouteEditViewModel(navItems);

            viewModel = pageRouteVersion.MapToPageRouteViewModel(viewModel);

            ViewBag.ApprovalId = approvalId;

            return(View(viewModel));
        }
        /// <summary>
        /// get DP details
        /// </summary>
        /// <param name="id"></param>
        /// <param name="approvalId"></param>
        /// <returns></returns>
        private async Task <IActionResult> GetDetails(int id, int approvalId)
        {
            var user = await _userManager.GetUserAsync(HttpContext.User);

            var role = (await _userManager.GetRolesAsync(user).ConfigureAwait(false)).FirstOrDefault();

            PageRouteVersion pageRouteVersion = _pageRouteVersionRepository.GetWithNoTracking(id);

            if (pageRouteVersion.VersionStatusEnum == VersionStatusEnum.Approved || pageRouteVersion.VersionStatusEnum == VersionStatusEnum.Ignored)
            {
                var pageRoute = _pageRouteRepository.Get(pageRouteVersion.PageRouteId ?? 0);
                if (pageRoute != null)
                {
                    pageRouteVersion.ApprovalDate     = pageRoute.ApprovalDate;
                    pageRouteVersion.ApprovedById     = pageRoute.ApprovedById;
                    pageRouteVersion.ArName           = pageRoute.ArName;
                    pageRouteVersion.ControllerName   = pageRoute.ControllerName;
                    pageRouteVersion.CreatedById      = pageRoute.CreatedById;
                    pageRouteVersion.CreationDate     = pageRoute.CreationDate;
                    pageRouteVersion.EnName           = pageRoute.EnName;
                    pageRouteVersion.HasNavItem       = pageRoute.HasNavItem;
                    pageRouteVersion.IsActive         = pageRoute.IsActive;
                    pageRouteVersion.IsDeleted        = pageRoute.IsDeleted;
                    pageRouteVersion.IsDynamicPage    = pageRoute.IsDynamicPage;
                    pageRouteVersion.NavItemId        = pageRoute.NavItemId;
                    pageRouteVersion.Order            = pageRoute.Order;
                    pageRouteVersion.PageFilePathAr   = pageRoute.PageFilePathAr;
                    pageRouteVersion.PageFilePathEn   = pageRoute.PageFilePathEn;
                    pageRouteVersion.SeoDescriptionAR = pageRoute.SeoDescriptionAR;
                    pageRouteVersion.SectionName      = pageRoute.SectionName;
                    pageRouteVersion.SeoDescriptionEN = pageRoute.SeoDescriptionEN;
                    pageRouteVersion.SeoOgTitleAR     = pageRoute.SeoOgTitleAR;
                    pageRouteVersion.SeoOgTitleEN     = pageRoute.SeoOgTitleEN;
                    pageRouteVersion.SeoTitleAR       = pageRoute.SeoTitleAR;
                    pageRouteVersion.SeoTitleEN       = pageRoute.SeoTitleEN;
                    pageRouteVersion.SeoTwitterCardAR = pageRoute.SeoTwitterCardAR;
                    pageRouteVersion.SeoTwitterCardEN = pageRoute.SeoTwitterCardEN;
                }
            }
            var notification = _approvalNotificationsRepository.GetByRelatedIdAndType(pageRouteVersion.Id, ChangeType.BasicInfo);

            ViewBag.DisableEditFlage = false;
            if (notification != null && notification.VersionStatusEnum == VersionStatusEnum.Submitted)
            {
                ViewBag.DisableEditFlage = true;
            }
            if (pageRouteVersion == null)
            {
                return(NotFound());
            }

            List <NavItem>         navItems  = _navItemRepository.Get().ToList();
            PageRouteEditViewModel viewModel = new PageRouteEditViewModel(navItems);

            viewModel = pageRouteVersion.MapToPageRouteViewModel(viewModel);

            ViewBag.ApprovalId = approvalId;

            return(View(viewModel));
        }
        /// <summary>
        /// edit static page route
        /// </summary>
        /// <param name="pageRouteViewModel"></param>
        /// <param name="newVersionStatusEnum"></param>
        /// <param name="oldVersionStatusEnum"></param>
        /// <param name="changeActionEnum"></param>
        /// <param name="userId"></param>
        /// <param name="pageRoutVersionId"></param>
        /// <returns></returns>
        private IActionResult EditMethod(PageRouteEditViewModel pageRouteViewModel, VersionStatusEnum newVersionStatusEnum, VersionStatusEnum oldVersionStatusEnum, ChangeActionEnum changeActionEnum, string userId, out int pageRoutVersionId, bool fromSaveAndSubmit = false)
        {
            List <NavItem> navItems;

            if (!pageRouteViewModel.HasNavItem)
            {
                ModelState.Remove("NavItemId");
            }


            PageRouteVersion pageRouteVersion = pageRouteViewModel.MapToPageRouteVersion();

            if (ModelState.IsValid)
            {
                if (oldVersionStatusEnum == VersionStatusEnum.Approved || oldVersionStatusEnum == VersionStatusEnum.Ignored)
                {
                    pageRouteVersion.CreatedById       = userId;
                    pageRouteVersion.CreationDate      = DateTime.Now;
                    pageRouteVersion.VersionStatusEnum = newVersionStatusEnum;
                    pageRouteVersion.ChangeActionEnum  = changeActionEnum;
                    pageRouteVersion.Id = 0;
                    _pageRouteVersionRepository.AddStaticPage(pageRouteVersion);
                    pageRoutVersionId = pageRouteVersion.Id;
                    if (!fromSaveAndSubmit)
                    {
                        _toastNotification.AddSuccessToastMessage(ToasrMessages.EditSuccess);
                    }
                    _eventLogger.LogInfoEvent(HttpContext.User.Identity.Name, Common.ActivityEnum.Add, "Definitions > Static Pages > Add", pageRouteViewModel.EnName);
                    return(RedirectToAction(nameof(Index)));
                }
                PageRouteVersion newPageRouteVersion = _pageRouteVersionRepository.Update(pageRouteVersion);
                if (newPageRouteVersion != null)
                {
                    if (!fromSaveAndSubmit)
                    {
                        _toastNotification.AddSuccessToastMessage(ToasrMessages.EditSuccess);
                    }
                    _eventLogger.LogInfoEvent(HttpContext.User.Identity.Name, Common.ActivityEnum.Update, "Definitions > Static Pages > Edit", pageRouteViewModel.EnName);
                    pageRoutVersionId = pageRouteVersion.Id;
                    return(RedirectToAction(nameof(Index)));
                }
                else
                {
                    _toastNotification.AddErrorToastMessage(ToasrMessages.warning);
                    navItems = _navItemRepository.Get().ToList();
                    pageRouteViewModel.NavItems = navItems;
                    pageRoutVersionId           = pageRouteVersion.Id;
                    _eventLogger.LogInfoEvent(HttpContext.User.Identity.Name, Common.ActivityEnum.Warning, "Definitions > Static Pages > Edit", pageRouteViewModel.EnName);
                    return(View(pageRouteViewModel));
                }
            }
            navItems = _navItemRepository.Get().ToList();
            pageRouteViewModel.NavItems = navItems;
            pageRoutVersionId           = pageRouteVersion.Id;
            return(View(pageRouteViewModel));
        }
        /// <summary>
        /// save and submit static page route
        /// </summary>
        /// <param name="pageRouteViewModel"></param>
        /// <param name="changeActionEnum"></param>
        /// <returns></returns>
        private async Task SaveAndSubmitMethod(PageRouteEditViewModel pageRouteViewModel, ChangeActionEnum changeActionEnum)
        {
            var user = await _userManager.GetUserAsync(HttpContext.User);

            var pageRoutVersionId    = 0;
            var oldVersionStatusEnum = pageRouteViewModel.VersionStatusEnum ?? VersionStatusEnum.Submitted;

            pageRouteViewModel.VersionStatusEnum = VersionStatusEnum.Submitted;
            EditMethod(pageRouteViewModel, VersionStatusEnum.Submitted, oldVersionStatusEnum, changeActionEnum, user.Id, out pageRoutVersionId, true);
            var pageRouteVersion = _pageRouteVersionRepository.Get(pageRoutVersionId);

            if (pageRoutVersionId != pageRouteViewModel.Id || oldVersionStatusEnum != VersionStatusEnum.Submitted)
            {
                SubmitMethod(user, pageRouteVersion);
            }
        }
        public async Task <IActionResult> SubmitChanges(PageRouteEditViewModel pageRouteViewModel)
        {
            List <NavItem> navItems;

            if (!pageRouteViewModel.HasNavItem)
            {
                ModelState.Remove("NavItemId");
            }
            if (!ModelState.IsValid)
            {
                navItems = _navItemRepository.Get().ToList();
                pageRouteViewModel.NavItems = navItems;
                return(View(nameof(Edit), pageRouteViewModel));
            }

            await SaveAndSubmitMethod(pageRouteViewModel, ChangeActionEnum.Update);

            return(RedirectToAction(nameof(Index)));
        }
예제 #6
0
        public static PageRouteVersion MapToPageRouteVersion(this PageRouteEditViewModel pageRouteViewModel)
        {
            PageRouteVersion pageRouteVersion = new PageRouteVersion();

            pageRouteVersion.Id             = pageRouteViewModel.Id;
            pageRouteVersion.EnName         = pageRouteViewModel.EnName;
            pageRouteVersion.ArName         = pageRouteViewModel.ArName;
            pageRouteVersion.Order          = pageRouteViewModel.Order;
            pageRouteVersion.IsActive       = pageRouteViewModel.IsActive;
            pageRouteVersion.IsDynamicPage  = pageRouteViewModel.IsDynamicPage;
            pageRouteVersion.HasNavItem     = pageRouteViewModel.HasNavItem;
            pageRouteVersion.NavItemId      = pageRouteViewModel.NavItemId;
            pageRouteVersion.CreatedById    = pageRouteViewModel.CreatedById;
            pageRouteVersion.CreationDate   = pageRouteViewModel.CreationDate;
            pageRouteVersion.ControllerName = pageRouteViewModel.ControllerName;
            pageRouteVersion.SectionName    = pageRouteViewModel.SectionName;


            pageRouteVersion.PageType = pageRouteViewModel.PageType;

            pageRouteVersion.SeoTitleEN       = pageRouteViewModel.SeoTitleEN;
            pageRouteVersion.SeoTitleAR       = pageRouteViewModel.SeoTitleAR;
            pageRouteVersion.SeoDescriptionEN = pageRouteViewModel.SeoDescriptionEN;
            pageRouteVersion.SeoDescriptionAR = pageRouteViewModel.SeoDescriptionAR;
            pageRouteVersion.SeoOgTitleEN     = pageRouteViewModel.SeoOgTitleEN;
            pageRouteVersion.SeoOgTitleAR     = pageRouteViewModel.SeoOgTitleAR;
            pageRouteVersion.SeoTwitterCardEN = pageRouteViewModel.SeoTwitterCardEN;
            pageRouteVersion.SeoTwitterCardAR = pageRouteViewModel.SeoTwitterCardAR;

            pageRouteVersion.ChangeActionEnum         = pageRouteViewModel.ChangeActionEnum;
            pageRouteVersion.VersionStatusEnum        = pageRouteViewModel.VersionStatusEnum;
            pageRouteVersion.ContentVersionStatusEnum = pageRouteViewModel.ContentVersionStatusEnum;
            pageRouteVersion.PageRouteId = pageRouteViewModel.PageRouteId;

            return(pageRouteVersion);
        }
        public async Task <IActionResult> Edit(PageRouteEditViewModel pageRouteViewModel)
        {
            var user = await _userManager.GetUserAsync(HttpContext.User);

            return(EditMethod(pageRouteViewModel, VersionStatusEnum.Draft, pageRouteViewModel.VersionStatusEnum ?? VersionStatusEnum.Draft, ChangeActionEnum.Update, user.Id, out int pageRoutVersionId));
        }