/// <summary> /// UpdateImage /// </summary> /// <param name="image"></param> /// <param name="fileData"></param> /// <param name="approvalRequired"></param> private void UpdateImage(SiteImage image, byte[] fileData, bool approvalRequired) { SiteImage oldImage = eCollabroDbContext.Repository<SiteImage>().Find(image.ImageId); if (oldImage != null) { if (approvalRequired && oldImage.ApprovalStatus.Equals(WorkflowConstants.ApprovedStatus)) // Save to Queue { image.ModifiedById = UserContextDetails.UserId; image.ModifiedOn = DateTime.UtcNow; image.ApprovalStatus = WorkflowConstants.ApprovalWaitingStatus; TempSiteImage tempImage = Mapper.Map<SiteImage, TempSiteImage>(image); if (fileData != null) { tempImage.ImageFile = fileData; } _workflowManager.SaveToQueue<TempSiteImage>(tempImage, ContextEnum.Image, image.ImageId); _workflowManager.CreateWorkflowTask(ContextEnum.Image, image.ImageId, "New Image [" + image.ImageTitle + "] ", "Image Description : " + image.ImageDescription); } else // Record is new and not in Queue { oldImage.ImageTitle = image.ImageTitle; oldImage.ImageDescription = image.ImageDescription; if (!string.IsNullOrEmpty(image.ImageFileName)) oldImage.ImageFileName = image.ImageFileName; if (fileData != null) { if (oldImage.ImageObject != null) { oldImage.ImageObject.ModifiedById = UserContextDetails.UserId; oldImage.ImageObject.ModifiedOn = DateTime.UtcNow; } else { oldImage.ImageObject = new ImageObject(); oldImage.ImageObject.CreatedOn = DateTime.UtcNow; oldImage.ImageObject.CreatedById = UserContextDetails.UserId; } oldImage.ImageObject.ImageObjectData = fileData; oldImage.ImageObject.ImageThumbnailData = ImageUtility.CreateThumbnail(fileData, 60); } oldImage.ImageGalleryId = image.ImageGalleryId; oldImage.IsActive = image.IsActive; oldImage.ModifiedById = UserContextDetails.UserId; oldImage.ModifiedOn = DateTime.UtcNow; oldImage.IsAnomynousAccess = image.IsAnomynousAccess; oldImage.IsCommentsAllowed = image.IsCommentsAllowed; oldImage.IsLikeAllowed = image.IsLikeAllowed; oldImage.IsRatingAllowed = image.IsRatingAllowed; oldImage.IsVotingAllowed = image.IsVotingAllowed; oldImage.ApprovalStatus = image.ApprovalStatus; oldImage.ApproveRejectDate = image.ApproveRejectDate; oldImage.ApproveRejectById = image.ApproveRejectById; eCollabroDbContext.Save(); if (approvalRequired) // approval required // create or update task { _workflowManager.CreateWorkflowTask(ContextEnum.Image, image.ImageId, "New Image [" + image.ImageTitle + "] ", "Image Description : " + image.ImageDescription); } } } else { throw new DBConcurrencyException(); } }
/// <summary> /// AddImage /// </summary> /// <param name="image"></param> /// <param name="fileData"></param> /// <param name="approvalRequired"></param> private void AddImage(SiteImage image, byte[] fileData, bool approvalRequired) { image.CreatedById = UserContextDetails.UserId; image.CreatedOn = DateTime.UtcNow; if (approvalRequired) image.ApprovalStatus = WorkflowConstants.ApprovalWaitingStatus; if (fileData != null) { image.ImageObject = new ImageObject(); image.ImageObject.CreatedById = UserContextDetails.UserId; image.ImageObject.CreatedOn = DateTime.UtcNow; image.ImageObject.ContextId = (int)ContextEnum.Image; image.ImageObject.ImageObjectData = fileData; image.ImageObject.ImageThumbnailData = ImageUtility.CreateThumbnail(fileData, 60); } eCollabroDbContext.Repository<SiteImage>().Insert(image); eCollabroDbContext.Save(); if (approvalRequired) { _workflowManager.CreateWorkflowTask(ContextEnum.Image, image.ImageId, "New Image [" + image.ImageTitle + "] ", "Image Description : " + image.ImageDescription); } }
/// <summary> /// MapImageQueueToImage /// </summary> /// <param name="image"></param> /// <param name="imageinQueue"></param> private void MapImageQueueToImage(SiteImage image, TempSiteImage imageinQueue) { image.ImageTitle = imageinQueue.ImageTitle; image.ImageDescription = imageinQueue.ImageDescription; image.ImageGalleryId = imageinQueue.ImageGalleryId; if (!string.IsNullOrEmpty(imageinQueue.ImageFileName)) image.ImageFileName = imageinQueue.ImageFileName; if (imageinQueue.ImageFile != null) { if (image.ImageObject == null) { image.ImageObject = new ImageObject(); image.ImageObject.CreatedById = imageinQueue.CreatedById; image.ImageObject.CreatedOn = imageinQueue.CreatedOn; } else { image.ImageObject.ModifiedById = imageinQueue.ModifiedById; image.ImageObject.ModifiedOn = imageinQueue.ModifiedOn; } image.ImageObject.ImageObjectData = imageinQueue.ImageFile; image.ImageObject.ImageThumbnailData = ImageUtility.CreateThumbnail(imageinQueue.ImageFile, 60); } image.IsAnomynousAccess = imageinQueue.IsAnomynousAccess; image.IsCommentsAllowed = imageinQueue.IsCommentsAllowed; image.IsLikeAllowed = imageinQueue.IsLikeAllowed; image.IsRatingAllowed = imageinQueue.IsRatingAllowed; image.IsVotingAllowed = imageinQueue.IsVotingAllowed; image.ModifiedOn = imageinQueue.ModifiedOn; image.ModifiedById = imageinQueue.ModifiedById; image.IsActive = imageinQueue.IsActive; image.ApprovalStatus = imageinQueue.ApprovalStatus; image.ApproveRejectById = imageinQueue.ApproveRejectById; image.ApproveRejectDate = imageinQueue.ApproveRejectDate; }
/// <summary> /// SaveImage /// </summary> /// <param name="image"></param> /// <returns></returns> public void SaveImage(SiteImage image, byte[] fileData) { #region Check Permission List<PermissionEnum> userPermissions = _securityManager.GetUserFeaturePermissions(UserContextDetails.UserId, FeatureEnum.ImageGallery); if ((image.ImageId.Equals(0) && !userPermissions.Contains(PermissionEnum.AddContent)) || (!image.ImageId.Equals(0) && !userPermissions.Contains(PermissionEnum.EditContent))) throw new BusinessException(_coreValidationResourceManager.GetString(CoreValidationMessagesConstants.UnAuthorized), CoreValidationMessagesConstants.UnAuthorized); #endregion //check contentSetting SecurityManager securityManager = new SecurityManager(); List<SiteContentSettingResult> siteContentSettingResults = securityManager.GetSiteFeatureSettings(FeatureEnum.ImageGallery); bool approvalRequired = siteContentSettingResults.Where(qry => qry.ContentSettingId.Equals((int)FeatureSettingEnum.ApprovalRequired)).FirstOrDefault().IsAssigned; //self approved in case approval not required if (!approvalRequired) { image.ApprovalStatus = WorkflowConstants.ApprovedStatus; image.ApproveRejectDate = DateTime.UtcNow; image.ApproveRejectById = UserContextDetails.UserId; } else { image.ApprovalStatus = WorkflowConstants.ApprovalWaitingStatus; image.ApproveRejectById = null; image.ApproveRejectDate = null; } if (image.ImageId.Equals(0)) // New SiteImage { AddImage(image, fileData, approvalRequired); } else // Update SiteImage { UpdateImage(image, fileData, approvalRequired); } }