Exemplo n.º 1
0
        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));
            }
        }
Exemplo n.º 2
0
        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;
                }
            }
        }
Exemplo n.º 3
0
        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);
        }