Esempio n. 1
0
        public static PageRouteEditViewModel MapToPageRouteViewModel(this PageRouteVersion pageRouteVersion, PageRouteEditViewModel pageRouteEditViewModel)
        {
            pageRouteEditViewModel.Id             = pageRouteVersion.Id;
            pageRouteEditViewModel.EnName         = pageRouteVersion.EnName;
            pageRouteEditViewModel.ArName         = pageRouteVersion.ArName;
            pageRouteEditViewModel.Order          = pageRouteVersion.Order;
            pageRouteEditViewModel.IsActive       = pageRouteVersion.IsActive;
            pageRouteEditViewModel.IsDynamicPage  = pageRouteVersion.IsDynamicPage;
            pageRouteEditViewModel.HasNavItem     = pageRouteVersion.HasNavItem;
            pageRouteEditViewModel.NavItemId      = pageRouteVersion.NavItemId;
            pageRouteEditViewModel.CreatedById    = pageRouteVersion.CreatedById;
            pageRouteEditViewModel.CreationDate   = pageRouteVersion.CreationDate;
            pageRouteEditViewModel.ControllerName = pageRouteVersion.ControllerName;
            pageRouteEditViewModel.SectionName    = pageRouteVersion.SectionName;

            pageRouteEditViewModel.SeoTitleEN               = pageRouteVersion.SeoTitleEN;
            pageRouteEditViewModel.SeoTitleAR               = pageRouteVersion.SeoTitleAR;
            pageRouteEditViewModel.SeoDescriptionEN         = pageRouteVersion.SeoDescriptionEN;
            pageRouteEditViewModel.SeoDescriptionAR         = pageRouteVersion.SeoDescriptionAR;
            pageRouteEditViewModel.SeoOgTitleEN             = pageRouteVersion.SeoOgTitleEN;
            pageRouteEditViewModel.SeoOgTitleAR             = pageRouteVersion.SeoOgTitleAR;
            pageRouteEditViewModel.SeoTwitterCardEN         = pageRouteVersion.SeoTwitterCardEN;
            pageRouteEditViewModel.SeoTwitterCardAR         = pageRouteVersion.SeoTwitterCardAR;
            pageRouteEditViewModel.PageType                 = pageRouteVersion.PageType;
            pageRouteEditViewModel.ChangeActionEnum         = pageRouteVersion.ChangeActionEnum;
            pageRouteEditViewModel.VersionStatusEnum        = pageRouteVersion.VersionStatusEnum;
            pageRouteEditViewModel.PageRouteId              = pageRouteVersion.PageRouteId;
            pageRouteEditViewModel.ContentVersionStatusEnum = pageRouteVersion.ContentVersionStatusEnum;
            return(pageRouteEditViewModel);
        }
        public async Task <IActionResult> Delete(int id)
        {
            PageRouteVersion pageRouteVersion = _pageRouteVersionRepository.Get(id);

            if (pageRouteVersion != null)
            {
                TempData[notificationMessageKey] = ToasrMessages.DeleteSuccess;
                TempData[notificationTypeKey]    = notificationSuccess;

                if (pageRouteVersion.ChangeActionEnum == ChangeActionEnum.New && pageRouteVersion.VersionStatusEnum == VersionStatusEnum.Draft)
                {
                    _pageRouteVersionRepository.SoftDelete(id);
                    _eventLogger.LogInfoEvent(HttpContext.User.Identity.Name, Common.ActivityEnum.Delete, "Definitions > Static Pages > Delete", "Soft Delete id: " + id);
                }
                else
                {
                    await SaveAndSubmitMethod(pageRouteVersion.MapToPageRouteViewModel(new PageRouteEditViewModel()), ChangeActionEnum.Delete);

                    _eventLogger.LogInfoEvent(HttpContext.User.Identity.Name, Common.ActivityEnum.Delete, "Definitions > Static Pages > Delete", "Delete id: " + id);
                }

                return(Json(new { }));
            }

            TempData[notificationMessageKey] = "Error has been occurred.";
            TempData[notificationTypeKey]    = notificationError;
            return(Json(new { }));
        }
Esempio n. 3
0
        public static List <PageRouteVersion> MapToPageRouteVersions(this List <PageRoute> pageRoutes)
        {
            List <PageRouteVersion> pageRouteVersions = new List <PageRouteVersion>();

            foreach (PageRoute pageRoute in pageRoutes)
            {
                PageRouteVersion pageRouteVersion = new PageRouteVersion()
                {
                    ApprovalDate   = pageRoute.ApprovalDate,
                    ApprovedById   = pageRoute.ApprovedById,
                    ArName         = pageRoute.ArName,
                    CreatedById    = pageRoute.CreatedById,
                    CreationDate   = DateTime.Now,
                    EnName         = pageRoute.EnName,
                    IsActive       = pageRoute.IsActive,
                    IsDeleted      = pageRoute.IsDeleted,
                    Order          = pageRoute.Order,
                    NavItemId      = pageRoute.NavItemId,
                    ControllerName = pageRoute.ControllerName,
                    SectionName    = pageRoute.SectionName,
                    StatusId       = (int)RequestStatus.Approved
                };

                pageRouteVersions.Add(pageRouteVersion);
            }

            pageRouteVersions.Reverse();
            return(pageRouteVersions);
        }
        public async Task <IActionResult> Create(PageRouteCreateViewModel pageRouteViewModel)
        {
            if (ModelState.IsValid)
            {
                var user = await _userManager.GetUserAsync(HttpContext.User);

                PageRouteVersion pageRouteVersion = new PageRouteVersion();
                pageRouteVersion              = pageRouteViewModel.MapToPageRouteVersion(pageRouteVersion);
                pageRouteVersion.CreatedById  = user.Id;
                pageRouteVersion.CreationDate = DateTime.Now;

                pageRouteVersion.VersionStatusEnum = VersionStatusEnum.Draft;
                pageRouteVersion.ChangeActionEnum  = ChangeActionEnum.New;

                PageRouteVersion newPageRouteVersion = _pageRouteVersionRepository.Add(pageRouteVersion);
                if (newPageRouteVersion != null)
                {
                    _toastNotification.AddSuccessToastMessage(ToasrMessages.AddSuccess);
                    _eventLogger.LogInfoEvent(HttpContext.User.Identity.Name, Common.ActivityEnum.Add, "Dynamic Pages ", pageRouteViewModel.EnName);
                    return(RedirectToAction("Index"));
                }
                else
                {
                    _eventLogger.LogInfoEvent(HttpContext.User.Identity.Name, Common.ActivityEnum.Add, "Dynamic Pages ", "Insertion Error");
                    _toastNotification.AddErrorToastMessage(ToasrMessages.warning);
                    return(View());
                }
            }
            List <NavItem>           navItems  = _navItemRepository.Get().ToList();
            PageRouteCreateViewModel viewModel = new PageRouteCreateViewModel(navItems);

            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));
        }
Esempio n. 6
0
        public static PageRouteVersion MapToPageRouteVersion(this PageRoute pageRoute)
        {
            PageRouteVersion pageRouteVersion = new PageRouteVersion()
            {
                ApprovalDate   = pageRoute.ApprovalDate,
                ApprovedById   = pageRoute.ApprovedById,
                ArName         = pageRoute.ArName,
                EnName         = pageRoute.EnName,
                IsActive       = pageRoute.IsActive,
                IsDeleted      = pageRoute.IsDeleted,
                Order          = pageRoute.Order,
                NavItemId      = pageRoute.NavItemId,
                ControllerName = pageRoute.ControllerName,
                SectionName    = pageRoute.SectionName,
                CreationDate   = pageRoute.CreationDate,
                CreatedById    = pageRoute.CreatedById,
                IsDynamicPage  = pageRoute.IsDynamicPage,

                SeoTitleEN       = pageRoute.SeoTitleEN,
                SeoTitleAR       = pageRoute.SeoTitleAR,
                SeoDescriptionEN = pageRoute.SeoDescriptionEN,
                SeoDescriptionAR = pageRoute.SeoDescriptionAR,
                SeoOgTitleEN     = pageRoute.SeoOgTitleEN,
                SeoOgTitleAR     = pageRoute.SeoOgTitleAR,
                SeoTwitterCardEN = pageRoute.SeoTwitterCardEN,
                SeoTwitterCardAR = pageRoute.SeoTwitterCardAR,
            };

            return(pageRouteVersion);
        }
        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));
        }
Esempio n. 8
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));
        }
Esempio n. 9
0
 private static void UpdatePageRouteVersionStatus(PageRouteVersion prv, VersionStatusEnum versionStatusEnum)
 {
     if (prv.VersionStatusEnum == VersionStatusEnum.Draft || prv.VersionStatusEnum == VersionStatusEnum.Submitted)
     {
         prv.VersionStatusEnum = VersionStatusEnum.Submitted;
     }
     prv.ContentVersionStatusEnum = versionStatusEnum;
 }
 private void SubmitMethod(ApplicationUser user, PageRouteVersion pageRouteVersion)
 {
     ApprovalNotification approval = new ApprovalNotification()
     {
         ChangeAction      = pageRouteVersion.ChangeActionEnum ?? ChangeActionEnum.New,
         VersionStatusEnum = VersionStatusEnum.Submitted,
         ChangesDateTime   = DateTime.Now,
         ChangeType        = ChangeType.BasicInfo,
         PageLink          = $"/{nameof(StaticPageRouteController)[0..^10]}/{nameof(Edit)}/{pageRouteVersion.Id}",
        /// <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));
        }
        public async Task <IActionResult> ApplyEditRequestAsync(int id)
        {
            PageRouteVersion pageRouteVersion    = _pageRouteVersionRepository.Get(id);
            string           notificationMessage = null;

            if (ValidatePageRouteForApply(pageRouteVersion, out notificationMessage))
            {
                //var isApply = ApplyPageChanges(id, pageRouteVersion);
                var user = await _userManager.GetUserAsync(HttpContext.User);

                string url        = $"{nameof(DynamicPageRouteController)[0..^10]}/{nameof(Edit)}";
Esempio n. 13
0
        /// <summary>
        /// Approve page route version
        /// </summary>
        /// <param name="pageRouteVersion">page route version model</param>
        /// <param name="changeType">change type</param>
        /// <returns></returns>
        public void ApprovePageRoute(PageRouteVersion pageRouteVersion, ChangeType changeType)
        {
            var lastNotification = _db.ApprovalNotifications.Where(d => d.RelatedVersionId == pageRouteVersion.Id &&
                                                                   d.RelatedPageEnum == RelatedPageEnum.PageRouteVersion && d.VersionStatusEnum == VersionStatusEnum.Submitted &&
                                                                   d.ChangeType != changeType).Any();

            if (!lastNotification)
            {
                pageRouteVersion.VersionStatusEnum = VersionStatusEnum.Approved;
            }
        }
Esempio n. 14
0
        /// <summary>
        /// Applying submit request
        /// </summary>
        /// <param name="pageRouteVersion">page route version model</param>
        /// <param name="userId">logged in user</param>
        /// <param name="urlParent">parent route version url</param>
        /// <param name="urlSection">section url</param>
        /// <returns>true if applying false otherwise</returns>
        public bool ApplySubmitRequest(PageRouteVersion pageRouteVersion, string userId, string urlParent, string urlSection)
        {
            var existPageRouteVer = _db.PageRouteVersions.FirstOrDefault(x => x.Id == pageRouteVersion.Id);

            //existPageRouteVer.VersionStatusEnum = VersionStatusEnum.Submitted;

            existPageRouteVer.VersionStatusEnum = VersionStatusEnum.Submitted;

            var existingNotifications = _db.ApprovalNotifications.Where(d => d.RelatedVersionId == pageRouteVersion.Id &&
                                                                        d.RelatedPageEnum == RelatedPageEnum.PageRouteVersion && d.VersionStatusEnum == VersionStatusEnum.Submitted).ToList();

            ///check if no notification added for the basic info then add new one
            if ((pageRouteVersion.PageRouteId == null && !existingNotifications.Any(d => d.ChangeType == ChangeType.BasicInfo)))
            {
                ApprovalNotification approval = new ApprovalNotification()
                {
                    ChangeAction      = pageRouteVersion.ChangeActionEnum ?? ChangeActionEnum.New,
                    VersionStatusEnum = VersionStatusEnum.Submitted,
                    ChangesDateTime   = DateTime.Now,
                    ChangeType        = ChangeType.BasicInfo,
                    PageLink          = $"/{urlParent}/{pageRouteVersion.Id}",
                    PageName          = pageRouteVersion.EnName,
                    PageType          = PageType.Dynamic,
                    ContentManagerId  = userId,
                    RelatedVersionId  = pageRouteVersion.Id,
                    RelatedPageEnum   = RelatedPageEnum.PageRouteVersion
                };
                _approvalNotificationsRepository.Add(approval);
            }
            if (!existingNotifications.Any(d => d.ChangeType == ChangeType.PageContent) || pageRouteVersion.ContentVersionStatusEnum == VersionStatusEnum.Draft)
            {
                existPageRouteVer.ContentVersionStatusEnum = VersionStatusEnum.Submitted;
                ApprovalNotification approvalSections = new ApprovalNotification()
                {
                    ChangeAction      = ChangeActionEnum.Update,
                    VersionStatusEnum = VersionStatusEnum.Submitted,
                    ChangesDateTime   = DateTime.Now,
                    ChangeType        = ChangeType.PageContent,
                    PageLink          = $"/{urlSection}?pageRouteVersionId={pageRouteVersion.Id}",
                    PageName          = pageRouteVersion.EnName,
                    PageType          = PageType.Dynamic,
                    ContentManagerId  = userId,
                    RelatedVersionId  = pageRouteVersion.Id,
                    RelatedPageEnum   = RelatedPageEnum.PageRouteVersion
                };
                _approvalNotificationsRepository.Add(approvalSections);
            }
            _db.PageRouteVersions.Attach(existPageRouteVer);
            _db.Entry(existPageRouteVer).State = EntityState.Modified;
            _db.SaveChanges();
            return(true);
        }
Esempio n. 15
0
        /// <summary>
        /// Coping page section and its cards to page section versions which has the same page route version id
        /// </summary>
        /// <param name="pageRouteVersion">page route version object which i will take it's id to copy objects</param>
        /// <returns></returns>
        public void CopyPageSectionVersions(PageRouteVersion pageRouteVersion)
        {
            if (pageRouteVersion.PageRouteId != null && !pageRouteVersion.PageSectionVersions.Any())
            {
                var pageSections = _db.PageSections.Include(d => d.PageSectionCards).Where(d => d.PageRouteId == pageRouteVersion.PageRouteId && !d.IsDeleted).ToList();
                foreach (var section in pageSections)
                {
                    var secVer = new PageSectionVersion
                    {
                        ArDescription      = section.ArDescription,
                        ArImageAlt         = section.ArImageAlt,
                        ArTitle            = section.ArTitle,
                        EnDescription      = section.EnDescription,
                        EnImageAlt         = section.EnImageAlt,
                        EnTitle            = section.EnTitle,
                        CreatedById        = pageRouteVersion.CreatedById,
                        CreationDate       = DateTime.Now,
                        IsActive           = section.IsActive,
                        IsDeleted          = false,
                        Order              = section.Order,
                        PageRouteVersionId = pageRouteVersion.Id,
                        PageSectionId      = section.Id,
                        PageSectionTypeId  = section.PageSectionTypeId,
                        Url = section.Url
                    };

                    foreach (var card in section.PageSectionCards.Where(d => !d.IsDeleted))
                    {
                        secVer.PageSectionCardVersions.Add(new PageSectionCardVersion
                        {
                            ArDescription        = card.ArDescription,
                            ArImageAlt           = card.ArImageAlt,
                            ArTitle              = card.ArTitle,
                            CreatedById          = pageRouteVersion.CreatedById,
                            CreationDate         = DateTime.Now,
                            EnDescription        = card.EnDescription,
                            EnImageAlt           = card.EnImageAlt,
                            EnTitle              = card.EnTitle,
                            FileUrl              = card.FileUrl,
                            ImageUrl             = card.ImageUrl,
                            IsActive             = card.IsActive,
                            IsDeleted            = false,
                            Order                = card.Order,
                            PageSectionCardId    = card.Id,
                            PageSectionVersionId = secVer.Id
                        });
                    }
                    _db.PageSectionVersions.Add(secVer);
                }
                _db.SaveChanges();
            }
        }
Esempio n. 16
0
        /// <summary>
        /// upgate a page route version model
        /// </summary>
        /// <param name="pageRouteVersion">page route version model</param>
        /// <returns>updated object</returns>
        public PageRouteVersion Update(PageRouteVersion pageRouteVersion)
        {
            try
            {
                if (pageRouteVersion.StatusId <= 1)
                {
                    pageRouteVersion.StatusId = (int)RequestStatus.Draft;
                }

                _db.PageRouteVersions.Update(pageRouteVersion);
                _db.SaveChanges();
                return(pageRouteVersion);
            }
            catch (Exception ex)
            {
                return(null);
            }
        }
        private bool ValidatePageRouteForApply(PageRouteVersion pageRouteVersion, out string message)
        {
            if (pageRouteVersion.IsDeleted)
            {
                message = null;
                return(true);
            }
            int NewsCount        = pageRouteVersion.PageNewsVersions.Count;
            int deletedNewsCount = pageRouteVersion.PageNewsVersions.Count(s => s.IsDeleted);

            if (NewsCount == deletedNewsCount)
            {
                message = "All page News is flagged as deleted. </br> Please add a new news in order to apply page changes.";
                return(false);
            }
            message = null;
            return(true);
        }
Esempio n. 18
0
        /// <summary>
        /// Adding a new page route version
        /// </summary>
        /// <param name="PageRouteVersion">page route version model</param>
        /// <returns>the added object</returns>
        public PageRouteVersion Add(PageRouteVersion PageRouteVersion)
        {
            if (PageRouteVersion.StatusId <= 0)
            {
                PageRouteVersion.StatusId = (int)RequestStatus.Draft;
            }
            PageRouteVersion.HasNavItem     = true;
            PageRouteVersion.IsDynamicPage  = true;
            PageRouteVersion.ControllerName = "DynamicPage";

            try
            {
                _db.PageRouteVersions.Add(PageRouteVersion);
                _db.SaveChanges();
                return(PageRouteVersion);
            }
            catch (Exception ex)
            {
                return(null);
            }
        }
Esempio n. 19
0
        public static PageRouteVersion MapToPageRouteVersion(this PageRoute pageRoute)
        {
            PageRouteVersion pageRouteVersion = new PageRouteVersion
            {
                EnName           = pageRoute.EnName,
                ArName           = pageRoute.ArName,
                Order            = pageRoute.Order,
                IsActive         = pageRoute.IsActive,
                NavItemId        = pageRoute.NavItemId,
                SeoTitleEN       = pageRoute.SeoTitleEN,
                SeoTitleAR       = pageRoute.SeoTitleAR,
                SeoDescriptionEN = pageRoute.SeoDescriptionEN,
                SeoDescriptionAR = pageRoute.SeoDescriptionAR,
                SeoOgTitleEN     = pageRoute.SeoOgTitleEN,
                SeoOgTitleAR     = pageRoute.SeoOgTitleAR,
                SeoTwitterCardEN = pageRoute.SeoTwitterCardEN,
                SeoTwitterCardAR = pageRoute.SeoTwitterCardAR
            };

            return(pageRouteVersion);
        }
Esempio n. 20
0
        /// <summary>
        /// Add new page route version to database
        /// </summary>
        /// <param name="pageRouteVersion">page route version model</param>
        /// <returns>Added object</returns>
        public PageRouteVersion AddNewPageRouteVersion(PageRouteVersion pageRouteVersion)
        {
            var newPageRouteVersion = new PageRouteVersion
            {
                VersionStatusEnum = VersionStatusEnum.Draft,
                ArName            = pageRouteVersion.ArName,
                ChangeActionEnum  = ChangeActionEnum.Update,
                ControllerName    = pageRouteVersion.ControllerName,
                CreationDate      = DateTime.Now,
                CreatedById       = pageRouteVersion.CreatedById,
                EnName            = pageRouteVersion.EnName,
                HasNavItem        = pageRouteVersion.HasNavItem,
                IsActive          = pageRouteVersion.IsActive,
                IsDeleted         = false,
                IsDynamicPage     = pageRouteVersion.IsDynamicPage,
                NavItemId         = pageRouteVersion.NavItemId,
                Order             = pageRouteVersion.Order,
                PageFilePathAr    = pageRouteVersion.PageFilePathAr,
                PageFilePathEn    = pageRouteVersion.PageFilePathEn,
                PageRouteId       = pageRouteVersion.PageRouteId,
                PageType          = pageRouteVersion.PageType,
                SectionName       = pageRouteVersion.SectionName,
                SeoDescriptionAR  = pageRouteVersion.SeoDescriptionAR,
                SeoDescriptionEN  = pageRouteVersion.SeoDescriptionEN,
                SeoOgTitleAR      = pageRouteVersion.SeoOgTitleAR,
                SeoOgTitleEN      = pageRouteVersion.SeoOgTitleEN,
                SeoTitleAR        = pageRouteVersion.SeoTitleAR,
                SeoTitleEN        = pageRouteVersion.SeoTitleEN,
                SeoTwitterCardAR  = pageRouteVersion.SeoTwitterCardAR,
                SeoTwitterCardEN  = pageRouteVersion.SeoTwitterCardEN,
                StatusId          = 1
            };

            _db.PageRouteVersions.Add(newPageRouteVersion);

            _db.SaveChanges();
            return(newPageRouteVersion);
        }
Esempio n. 21
0
        public IActionResult Index(int pageRouteVersionId, [FromQuery] int approvalId)
        {
            if (TempData[notificationMessageKey] != null)
            {
                switch (TempData[notificationTypeKey])
                {
                case notificationSuccess:
                    _toastNotification.AddSuccessToastMessage(TempData[notificationMessageKey].ToString());
                    break;

                case notificationWarning:
                    _toastNotification.AddWarningToastMessage(TempData[notificationMessageKey].ToString());
                    break;

                case notificationError:
                    _toastNotification.AddErrorToastMessage(TempData[notificationMessageKey].ToString());
                    break;
                }
            }

            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;
            ViewBag.approvalId         = approvalId;
            ViewBag.pageRouteVersionId = pageRouteVersionId;

            return(View(pageRouteVersion.Id));
        }
        public IActionResult ApplyEditRequest(int id)
        {
            PageRouteVersion pageRouteVersion    = _pageRouteVersionRepository.Get(id);
            string           notificationMessage = null;

            if (ValidatePageRouteForApply(pageRouteVersion, out notificationMessage))
            {
                PageRouteVersion newPageRouteVersion = _pageRouteVersionRepository.ApplyEditRequest(id, null, null);

                if (newPageRouteVersion != null)
                {
                    TempData[notificationMessageKey] = ToasrMessages.SubmitSuccess;
                    TempData[notificationTypeKey]    = notificationSuccess;

                    return(Json(new { }));
                }
            }



            TempData[notificationMessageKey] = notificationMessage;
            TempData[notificationTypeKey]    = notificationWarning;
            return(Json(new { }));
        }
        /// <summary>
        /// Delete a page route object from database by id
        /// </summary>
        /// <param name="id">page route id</param>
        /// <returns>Deleted object</returns>
        public PageRoute Delete(int id)
        {
            PageRoute pageRoute = _db.PageRoutes.Find(id);

            try
            {
                PageRouteVersion pageRouteVersion = pageRoute.MapToPageRouteVersion();
                pageRouteVersion.IsDeleted    = true;
                pageRouteVersion.CreatedById  = _userId;
                pageRouteVersion.CreationDate = DateTime.Now;
                _db.PageRouteVersions.Add(pageRouteVersion);
                int deleted = _db.SaveChanges();
                if (deleted > 0)
                {
                    _logger.LogInformation($"User: {userName} has deleted nav item with name: {pageRoute.EnName}");
                }

                return(pageRoute);
            }
            catch (Exception ex)
            {
                return(null);
            }
        }
Esempio n. 24
0
        /// <summary>
        /// Adding or updating page route version
        /// </summary>
        /// <param name="pageRouteId">page route id</param>
        /// <returns>added or updated object</returns>
        public PageRouteVersion AddOrUpdatePageRouteVersion(int pageRouteId)
        {
            var pageRouteVersion = GetByPageRoute(pageRouteId);

            if ((pageRouteVersion.VersionStatusEnum == VersionStatusEnum.Approved || pageRouteVersion.VersionStatusEnum == VersionStatusEnum.Ignored) &&
                (pageRouteVersion.ContentVersionStatusEnum == VersionStatusEnum.Approved || pageRouteVersion.ContentVersionStatusEnum == VersionStatusEnum.Ignored))
            {
                if (pageRouteVersion.VersionStatusEnum == VersionStatusEnum.Ignored)
                {
                    var pageRoute = _db.PageRoutes.Find(pageRouteId);
                    var newVer    = new PageRouteVersion
                    {
                        VersionStatusEnum        = VersionStatusEnum.Approved,
                        ArName                   = pageRoute.ArName,
                        ChangeActionEnum         = ChangeActionEnum.Update,
                        ControllerName           = pageRoute.ControllerName,
                        CreationDate             = DateTime.Now,
                        CreatedById              = pageRoute.CreatedById,
                        EnName                   = pageRoute.EnName,
                        HasNavItem               = pageRoute.HasNavItem,
                        IsActive                 = pageRoute.IsActive,
                        IsDeleted                = false,
                        IsDynamicPage            = pageRoute.IsDynamicPage,
                        NavItemId                = pageRoute.NavItemId,
                        Order                    = pageRoute.Order,
                        PageFilePathAr           = pageRoute.PageFilePathAr,
                        PageFilePathEn           = pageRoute.PageFilePathEn,
                        PageRouteId              = pageRoute.Id,
                        PageType                 = pageRoute.PageType,
                        SectionName              = pageRoute.SectionName,
                        SeoDescriptionAR         = pageRoute.SeoDescriptionAR,
                        SeoDescriptionEN         = pageRoute.SeoDescriptionEN,
                        SeoOgTitleAR             = pageRoute.SeoOgTitleAR,
                        SeoOgTitleEN             = pageRoute.SeoOgTitleEN,
                        SeoTitleAR               = pageRoute.SeoTitleAR,
                        SeoTitleEN               = pageRoute.SeoTitleEN,
                        SeoTwitterCardAR         = pageRoute.SeoTwitterCardAR,
                        SeoTwitterCardEN         = pageRoute.SeoTwitterCardEN,
                        StatusId                 = 1,
                        ContentVersionStatusEnum = VersionStatusEnum.Draft
                    };
                    _db.PageRouteVersions.Add(newVer);
                    _db.SaveChanges();
                    return(newVer);
                }
                else
                {
                    var newVer = new PageRouteVersion
                    {
                        VersionStatusEnum        = pageRouteVersion.VersionStatusEnum == VersionStatusEnum.Ignored ? VersionStatusEnum.Approved : pageRouteVersion.VersionStatusEnum,
                        ArName                   = pageRouteVersion.ArName,
                        ChangeActionEnum         = ChangeActionEnum.Update,
                        ControllerName           = pageRouteVersion.ControllerName,
                        CreationDate             = DateTime.Now,
                        CreatedById              = pageRouteVersion.CreatedById,
                        EnName                   = pageRouteVersion.EnName,
                        HasNavItem               = pageRouteVersion.HasNavItem,
                        IsActive                 = pageRouteVersion.IsActive,
                        IsDeleted                = false,
                        IsDynamicPage            = pageRouteVersion.IsDynamicPage,
                        NavItemId                = pageRouteVersion.NavItemId,
                        Order                    = pageRouteVersion.Order,
                        PageFilePathAr           = pageRouteVersion.PageFilePathAr,
                        PageFilePathEn           = pageRouteVersion.PageFilePathEn,
                        PageRouteId              = pageRouteVersion.PageRouteId,
                        PageType                 = pageRouteVersion.PageType,
                        SectionName              = pageRouteVersion.SectionName,
                        SeoDescriptionAR         = pageRouteVersion.SeoDescriptionAR,
                        SeoDescriptionEN         = pageRouteVersion.SeoDescriptionEN,
                        SeoOgTitleAR             = pageRouteVersion.SeoOgTitleAR,
                        SeoOgTitleEN             = pageRouteVersion.SeoOgTitleEN,
                        SeoTitleAR               = pageRouteVersion.SeoTitleAR,
                        SeoTitleEN               = pageRouteVersion.SeoTitleEN,
                        SeoTwitterCardAR         = pageRouteVersion.SeoTwitterCardAR,
                        SeoTwitterCardEN         = pageRouteVersion.SeoTwitterCardEN,
                        StatusId                 = 1,
                        ContentVersionStatusEnum = VersionStatusEnum.Draft
                    };
                    _db.PageRouteVersions.Add(newVer);
                    _db.SaveChanges();
                    return(newVer);
                }
            }
            else
            {
                pageRouteVersion.ContentVersionStatusEnum = VersionStatusEnum.Draft;
                _db.PageRouteVersions.Update(pageRouteVersion);
                _db.SaveChanges();
                return(pageRouteVersion);
            }
        }
Esempio n. 25
0
 /// <summary>
 /// Adding a new static page
 /// </summary>
 /// <param name="PageRouteVersion">page route version model</param>
 /// <returns></returns>
 public void AddStaticPage(PageRouteVersion PageRouteVersion)
 {
     _db.PageRouteVersions.Add(PageRouteVersion);
     _db.SaveChanges();
 }
Esempio n. 26
0
        //public static List<PageRouteListViewModel> MapToPageRouteViewModels(this IEnumerable<PageRoute> pageRouteVersions)
        //{
        //    return pageRouteVersions.Select(pageRouteVersion => new PageRouteListViewModel
        //    {
        //        Id = pageRouteVersion.Id,
        //        EnName = pageRouteVersion.EnName,
        //        ArName = pageRouteVersion.ArName,
        //        Order = pageRouteVersion.Order,
        //        IsActive = pageRouteVersion.IsActive,
        //        NavItemArName = (pageRouteVersion.PageRouteVersion != null) ? ((pageRouteVersion.NavItem != null) ? pageRouteVersion.PageRoute.NavItem.ArName : "") : ((pageRouteVersion.NavItem != null) ? pageRouteVersion.NavItem.ArName : ""),
        //        NavItemEnName = (pageRouteVersion.PageRouteVersion != null) ? ((pageRouteVersion.NavItem != null) ? pageRouteVersion.PageRoute.NavItem.EnName : "") : ((pageRouteVersion.NavItem != null) ? pageRouteVersion.NavItem.EnName : ""),
        //        StatusId = pageRouteVersion.StatusId,
        //        StatusName = ((RequestStatus)pageRouteVersion.StatusId).ToString(),
        //        HasSections = pageRouteVersion.PageSectionVersions.Any(),
        //        IsDeleted = pageRouteVersion.IsDeleted
        //    }).ToList();
        //}

        public static PageRouteVersion MapToPageRouteVersion(this PageRouteCreateViewModel pageRouteViewModel, PageRouteVersion pageRouteVersion)
        {
            pageRouteVersion.EnName    = pageRouteViewModel.EnName;
            pageRouteVersion.ArName    = pageRouteViewModel.ArName;
            pageRouteVersion.Order     = pageRouteViewModel.Order;
            pageRouteVersion.IsActive  = pageRouteViewModel.IsActive;
            pageRouteVersion.NavItemId = pageRouteViewModel.NavItemId;

            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.PageType         = pageRouteVersion.PageType;
            return(pageRouteVersion);
        }