public ActionResult UploadImage(long adaNo, HttpPostedFileBase file1, HttpPostedFileBase file2) { try { ProspectAvatar avatar1 = new ProspectAvatar(); if (file1 != null && file1.IsImageFile()) { avatar1.img_streamdata = ConvertResizedImageToByteArray(file1); avatar1.img_extension = file1.GetImageFormat().ToString().ToLower(); } ProspectAvatar avatar2 = new ProspectAvatar(); if (file2 != null && file2.IsImageFile()) { avatar2.img_streamdata = ConvertResizedImageToByteArray(file2); avatar2.img_extension = file2.GetImageFormat().ToString().ToLower(); } if (file1 == null && file2 == null) { return(new JsonErrorResult(_resourceManager.GetString("ProfileImageMerging.UploadImage.NoFile"), HttpStatusCode.BadRequest)); } _profileImageMergingService.UploadUsersImage(adaNo, avatar1, avatar2); return(new HttpStatusCodeResult(HttpStatusCode.OK)); } catch (Exception ex) { _logger.Error("Error when uploading users' images: ", ex); return(new JsonErrorResult(ex.Message, HttpStatusCode.InternalServerError)); } }
public void UploadUsersImage(long adaNo, ProspectAvatar avatar1, ProspectAvatar avatar2) { var currentAvatars = this.GetImageByAdaNo(adaNo, false); var inactiveToken = "I"; using (var transaction = _wtaDbContext.BeginDbTransaction()) { try { for (int i = 0; i < 2; i++) { var clonedAvatar = i == 0 ? (ProspectAvatar)avatar1.Clone() : (ProspectAvatar)avatar2.Clone(); if (clonedAvatar.img_streamdata != null && clonedAvatar.img_streamdata.Length != 0 && !string.IsNullOrEmpty(currentAvatars[i].img_cmnd_id)) { var currentCmndId = currentAvatars[i].img_cmnd_id; var inactiveAvatar = _prospectAvatarRepository.Table.FirstOrDefault( c => c.img_cmnd_id == currentCmndId && c.img_status == inactiveToken); if (inactiveAvatar != null) { _prospectAvatarRepository.Delete(inactiveAvatar); } var remoteAvatar1 = (ProspectAvatar)currentAvatars[i].Clone(); remoteAvatar1.img_status = "I"; _prospectAvatarRepository.Delete(currentAvatars[i]); _prospectAvatarRepository.Insert(remoteAvatar1); clonedAvatar.img_cmnd_id = remoteAvatar1.img_cmnd_id; clonedAvatar.img_status = "A"; clonedAvatar.img_file_path = remoteAvatar1.img_file_path; _prospectAvatarRepository.Insert(clonedAvatar); } } transaction.Commit(); } catch (Exception) { transaction.Rollback(); throw; } } }
public ProspectAvatar[] GetImageByAdaNo(Distributor distributor, bool isReadOnly = true) { const string imgStatus = "A"; var avatars = new ProspectAvatar[2]; short numOfNoImg = 0; var repositoryTable = isReadOnly ? _prospectAvatarRepository.TableNoTracking : _prospectAvatarRepository.Table; if (!string.IsNullOrEmpty(distributor.ID1)) { avatars[0] = repositoryTable.FirstOrDefault(c => c.img_cmnd_id == distributor.ID1 && c.img_status == imgStatus); if (avatars[0] == null) { numOfNoImg++; } } if (!string.IsNullOrEmpty(distributor.ID2)) { avatars[1] = repositoryTable.FirstOrDefault(c => c.img_cmnd_id == distributor.ID2 && c.img_status == imgStatus); if (avatars[1] == null) { numOfNoImg++; } } if (numOfNoImg == 2) { throw new ABOException(_resourceManager.GetString("ProfileImageMerging.FailedToFindImages")); } return(avatars); }