Example #1
0
        public async Task <BaseResponse <bool> > UpdatePicture([FromBody] UpdateWorkPictureDto dto)
        {
            if (dto == null)
            {
                throw new BusinessException("Invalid parameter!", ErrorCode.INVALID_PARAMETER);
            }

            var response = new BaseResponse <bool>
            {
                Data   = await _workService.UpdatePicture(dto),
                Status = true
            };

            return(await Task.FromResult(response));
        }
Example #2
0
        public async Task <bool> UpdatePicture(UpdateWorkPictureDto dto)
        {
            _logger.LogInformation("start method update picture");

            var count = await this.DatabaseConnectService.Connection.CountAsync <WorkPicture>(x => x
                                                                                              .Where($"bys_work_picture.work_id = @WorkId")
                                                                                              .WithParameters(new { WorkId = dto.WorkId }));

            if (dto.Pictures.Length + count > 3 || dto.WorkId == null)
            {
                throw new BusinessException("", ErrorCode.INVALID_PARAMETER);
            }

            using (IDbTransaction transaction = this.DatabaseConnectService.BeginTransaction())
            {
                try
                {
                    foreach (TempUploadFileDto temp in dto.Pictures)
                    {
                        WorkPicture workPicture = temp.ToWorkPicture();
                        workPicture.WorkId = dto.WorkId;

                        await this.DatabaseConnectService.Connection.InsertAsync <WorkPicture>(workPicture, x => x.AttachToTransaction(transaction));
                    }

                    transaction.Commit();

                    _logger.LogInformation("end method update picture");

                    return(true);
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    throw new BusinessException(e.Message, ErrorCode.INVALID_PARAMETER);
                }
            }
        }