Пример #1
0
        /// <summary>
        /// Add a new page section card version to database
        /// </summary>
        /// <param name="sectionCardVersion">page section card object</param>
        /// <param name="pageRouteVersionId">page route version id</param>
        /// <returns>Added object</returns>
        public PageSectionCardVersion Add(PageSectionCardVersion sectionCardVersion, int pageRouteVersionId)
        {
            try
            {
                bool isVersion        = true;
                var  pageRouteVersion = _db.PageRouteVersions.Include(d => d.PageSectionVersions).FirstOrDefault(d => d.Id == pageRouteVersionId);
                if (pageRouteVersion.VersionStatusEnum == VersionStatusEnum.Ignored || pageRouteVersion.VersionStatusEnum == VersionStatusEnum.Approved)
                {
                    pageRouteVersion = _sectionVersionRepository.AddNewPageRouteVersion(pageRouteVersion);
                    isVersion        = false;
                }

                pageRouteVersion.ContentVersionStatusEnum = pageRouteVersion.ContentVersionStatusEnum == VersionStatusEnum.Submitted ? VersionStatusEnum.Submitted : VersionStatusEnum.Draft;
                _db.PageRouteVersions.Update(pageRouteVersion);

                _sectionVersionRepository.CopyPageSectionVersions(pageRouteVersion);
                if (!isVersion)
                {
                    var sectionVer = pageRouteVersion.PageSectionVersions.FirstOrDefault(d => d.PageSectionId == sectionCardVersion.PageSectionVersionId);
                    sectionCardVersion.PageSectionVersionId = sectionVer.Id;
                }
                _db.PageSectionCardVersions.Add(sectionCardVersion);
                _db.SaveChanges();
                return(_db.PageSectionCardVersions.Include(x => x.PageSectionVersion).ThenInclude(x => x.PageRouteVersion).FirstOrDefault(c => c.Id == sectionCardVersion.Id));
            }
            catch (Exception ex)
            {
                return(null);
            }
        }
Пример #2
0
        public static PageSectionCardVersion MapToSectionCardVersion(this SectionCardCreateViewModel sectionCardCreateViewModel)
        {
            PageSectionCardVersion pageSectionVersion = new PageSectionCardVersion();

            pageSectionVersion.EnTitle              = sectionCardCreateViewModel.EnTitle;
            pageSectionVersion.ArTitle              = sectionCardCreateViewModel.ArTitle;
            pageSectionVersion.EnDescription        = sectionCardCreateViewModel.EnDescription;
            pageSectionVersion.ArDescription        = sectionCardCreateViewModel.ArDescription;
            pageSectionVersion.EnImageAlt           = sectionCardCreateViewModel.EnImageAlt;
            pageSectionVersion.ArImageAlt           = sectionCardCreateViewModel.ArImageAlt;
            pageSectionVersion.ImageUrl             = sectionCardCreateViewModel.ImageUrl;
            pageSectionVersion.Order                = sectionCardCreateViewModel.Order;
            pageSectionVersion.IsActive             = sectionCardCreateViewModel.IsActive;
            pageSectionVersion.PageSectionVersionId = sectionCardCreateViewModel.SectionVersionId;
            return(pageSectionVersion);
        }
Пример #3
0
        public async Task <IActionResult> Create(SectionCardCreateViewModel sectionCardViewModel)
        {
            sectionCardViewModel.EnDescription.ValidateHtml("EnDescription", ModelState);
            sectionCardViewModel.EnDescription.ValidateHtml("ArDescription", ModelState);
            if (sectionCardViewModel.Photo == null || sectionCardViewModel.File == null)
            {
                ModelState.AddModelError(nameof(sectionCardViewModel.Photo), "you should uplaod a photo and file.");
                ModelState.AddModelError(nameof(sectionCardViewModel.File), "you should uplaod a photo and file.");
                _toastNotification.AddWarningToastMessage("you should uplaod a photo and file.");
            }
            if (ModelState.IsValid)
            {
                PageSectionCardVersion sectionCardVersion = sectionCardViewModel.MapToSectionCardVersion();

                sectionCardVersion.ImageUrl = _fileService.UploadImageUrlNew(sectionCardViewModel.Photo);
                sectionCardVersion.FileUrl  = _fileService.UploadFileUrlNew(sectionCardViewModel.File);

                var user = await _userManager.GetUserAsync(HttpContext.User);

                sectionCardVersion.CreatedById  = user.Id;
                sectionCardVersion.CreationDate = DateTime.Now;

                PageSectionCardVersion newPageSectionCardVersion = _sectionCardVersionRepository.Add(sectionCardVersion, sectionCardViewModel.PageRouteVersionId);
                if (newPageSectionCardVersion != null)
                {
                    _eventLogger.LogInfoEvent(HttpContext.User.Identity.Name, Common.ActivityEnum.Add, "Dynamic Page > Card > Add", sectionCardVersion.EnTitle);

                    _toastNotification.AddSuccessToastMessage(ToasrMessages.AddSuccess);
                    return(RedirectToAction("Index", new
                    {
                        id = newPageSectionCardVersion.PageSectionVersionId,
                        pageRouteVersionId = newPageSectionCardVersion.PageSectionVersion.PageRouteVersionId
                    }));
                }
                else
                {
                    _eventLogger.LogInfoEvent(HttpContext.User.Identity.Name, Common.ActivityEnum.Warning, "Dynamic Page > Card > Warning", sectionCardVersion.EnTitle);
                    _toastNotification.AddErrorToastMessage(ToasrMessages.warning);
                }
            }
            return(View(sectionCardViewModel));
        }
Пример #4
0
        /// <summary>
        /// Delete a page section card version object by id
        /// </summary>
        /// <param name="id">page section card version id</param>
        /// <param name="pageRouteVersionId">page route version id</param>
        /// <returns>Deleted object</returns>
        public DeleteCardsViewModel Delete(int id, int pageRouteVersionId)
        {
            try
            {
                bool isVersion        = true;
                var  pageRouteVersion = _db.PageRouteVersions.Include(d => d.PageSectionVersions).FirstOrDefault(d => d.Id == pageRouteVersionId);
                if (pageRouteVersion.VersionStatusEnum == VersionStatusEnum.Ignored || pageRouteVersion.VersionStatusEnum == VersionStatusEnum.Approved)
                {
                    pageRouteVersion = _sectionVersionRepository.AddNewPageRouteVersion(pageRouteVersion);
                    isVersion        = false;
                }
                pageRouteVersion.ContentVersionStatusEnum = pageRouteVersion.ContentVersionStatusEnum == VersionStatusEnum.Submitted ? VersionStatusEnum.Submitted : VersionStatusEnum.Draft;
                _db.PageRouteVersions.Update(pageRouteVersion);

                _sectionVersionRepository.CopyPageSectionVersions(pageRouteVersion);
                PageSectionCardVersion entry = null;
                if (isVersion)
                {
                    entry = _db.PageSectionCardVersions.First(e => e.Id == id);
                }
                else
                {
                    entry = _db.PageSectionCardVersions.OrderByDescending(d => d.Id).First(e => e.PageSectionCardId == id);
                }
                entry.IsDeleted = true;

                _db.PageSectionCardVersions.Attach(entry);
                _db.Entry(entry).State = EntityState.Modified;
                _db.SaveChanges();

                return(new DeleteCardsViewModel()
                {
                    pageSectionCardVersion = _db.PageSectionCardVersions.Include(x => x.PageSectionVersion).ThenInclude(x => x.PageRouteVersion).FirstOrDefault(c => c.Id == id),
                    Link = $"{entry.PageSectionVersionId}?pageRouteVersionId={pageRouteVersion.Id}"
                });
            }
            catch (Exception ex)
            {
                return(null);
            }
        }
Пример #5
0
        public static PageSectionCardVersion MapToSectionCardVersion(this SectionCardEditViewModel sectionCardEditViewModel)
        {
            PageSectionCardVersion pageSectionVersion = new PageSectionCardVersion()
            {
                Id                   = sectionCardEditViewModel.Id,
                EnTitle              = sectionCardEditViewModel.EnTitle,
                ArTitle              = sectionCardEditViewModel.ArTitle,
                EnDescription        = sectionCardEditViewModel.EnDescription,
                ArDescription        = sectionCardEditViewModel.ArDescription,
                EnImageAlt           = sectionCardEditViewModel.EnImageAlt,
                ArImageAlt           = sectionCardEditViewModel.ArImageAlt,
                Order                = sectionCardEditViewModel.Order,
                IsActive             = sectionCardEditViewModel.IsActive,
                ImageUrl             = sectionCardEditViewModel.ImageUrl,
                FileUrl              = sectionCardEditViewModel.FileUrl,
                PageSectionVersionId = sectionCardEditViewModel.SectionVersionId,
                IsDeleted            = sectionCardEditViewModel.IsDeleted,
                CreatedById          = sectionCardEditViewModel.CreatedById,
                CreationDate         = sectionCardEditViewModel.CreationDate.Value
            };

            return(pageSectionVersion);
        }
Пример #6
0
        /// <summary>
        /// Update a page section card version from database
        /// </summary>
        /// <param name="sectionCardVersion">page section card object</param>
        /// <param name="pageRouteVersionId">page route version id</param>
        /// <returns>Updated object</returns>
        public PageSectionCardVersion Update(PageSectionCardVersion sectionCardVersion, int pageRouteVersionId)
        {
            try
            {
                bool isVersion        = true;
                var  pageRouteVersion = _db.PageRouteVersions.Include(d => d.PageSectionVersions).FirstOrDefault(d => d.Id == pageRouteVersionId);
                if (pageRouteVersion.VersionStatusEnum == VersionStatusEnum.Ignored || pageRouteVersion.VersionStatusEnum == VersionStatusEnum.Approved)
                {
                    pageRouteVersion = _sectionVersionRepository.AddNewPageRouteVersion(pageRouteVersion);
                    isVersion        = false;
                }

                pageRouteVersion.ContentVersionStatusEnum = pageRouteVersion.ContentVersionStatusEnum == VersionStatusEnum.Submitted ? VersionStatusEnum.Submitted : VersionStatusEnum.Draft;
                _db.PageRouteVersions.Update(pageRouteVersion);

                _sectionVersionRepository.CopyPageSectionVersions(pageRouteVersion);
                PageSectionCardVersion entry = null;
                if (isVersion)
                {
                    entry = _db.PageSectionCardVersions.First(e => e.Id == sectionCardVersion.Id);
                }
                else
                {
                    entry = _db.PageSectionCardVersions.OrderByDescending(d => d.Id).First(e => e.PageSectionCardId == sectionCardVersion.Id);
                    sectionCardVersion.Id = entry.Id;
                    sectionCardVersion.PageSectionVersionId = entry.PageSectionVersionId;
                }
                _db.Entry(entry).CurrentValues.SetValues(sectionCardVersion);
                _db.SaveChanges();
                return(_db.PageSectionCardVersions.Include(x => x.PageSectionVersion).ThenInclude(x => x.PageRouteVersion).FirstOrDefault(c => c.Id == sectionCardVersion.Id));
            }
            catch (Exception ex)
            {
                return(null);
            }
        }
Пример #7
0
        public IActionResult Edit(SectionCardEditViewModel sectionCardViewModel)
        {
            sectionCardViewModel.EnDescription.ValidateHtml("EnDescription", ModelState);
            sectionCardViewModel.ArDescription.ValidateHtml("ArDescription", ModelState);

            if (ModelState.IsValid)
            {
                PageSectionCardVersion sectionCardVersion = sectionCardViewModel.MapToSectionCardVersion();
                string oldPhotoPath = null;
                string oldFilePath  = null;

                if (sectionCardViewModel.Photo != null)
                {
                    oldPhotoPath = sectionCardVersion.ImageUrl;
                    sectionCardVersion.ImageUrl = _fileService.UploadImageUrlNew(sectionCardViewModel.Photo);
                }

                if (sectionCardViewModel.File != null)
                {
                    oldFilePath = sectionCardVersion.FileUrl;
                    sectionCardVersion.FileUrl = _fileService.UploadFileUrlNew(sectionCardViewModel.File);
                }

                var subApplicationName = _configuration.GetSection("SubApplicationName").Value;
                if (!string.IsNullOrWhiteSpace(subApplicationName))
                {
                    sectionCardViewModel.FileUrl = sectionCardViewModel.FileUrl.ToLower().Replace(subApplicationName.ToLower(), "");
                    sectionCardVersion.FileUrl   = sectionCardViewModel.FileUrl;
                }

                PageSectionCardVersion newSectionCardVersion = _sectionCardVersionRepository.Update(sectionCardVersion, sectionCardViewModel.PageRouteVersionId);
                if (newSectionCardVersion != null)
                {
                    if (newSectionCardVersion.PageSectionVersion.PageRouteVersion.StatusId != (int)RequestStatus.Draft)
                    {
                        _pageRouteVersionRepository.ChangeStatus(newSectionCardVersion.PageSectionVersion.PageRouteVersionId, RequestStatus.Draft);
                    }

                    if (oldPhotoPath != null)
                    {
                        _fileService.RemoveImage(oldPhotoPath);
                    }

                    if (oldFilePath != null)
                    {
                        _fileService.RemoveFile(oldFilePath);
                    }

                    _eventLogger.LogInfoEvent(HttpContext.User.Identity.Name, Common.ActivityEnum.Update, "Dynamic Page > Card > Warning", newSectionCardVersion.EnTitle);

                    _toastNotification.AddSuccessToastMessage(ToasrMessages.EditSuccess);
                    return(RedirectToAction("Index", new
                    {
                        id = newSectionCardVersion.PageSectionVersionId,
                        pageRouteVersionId = newSectionCardVersion.PageSectionVersion.PageRouteVersionId
                    }));
                }
                else
                {
                    _eventLogger.LogInfoEvent(HttpContext.User.Identity.Name, Common.ActivityEnum.Warning, "Dynamic Page > Card > Warning", sectionCardVersion.EnTitle);

                    _toastNotification.AddErrorToastMessage(ToasrMessages.warning);
                }
            }


            return(View(sectionCardViewModel));
        }