/// <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); } }
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); }
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)); }
/// <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); } }
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); }
/// <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); } }
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)); }