public static WorkPicture ToWorkPicture(this TempUploadFileDto dto)
        {
            if (dto == null)
            {
                return(null);
            }

            WorkPicture entity = new WorkPicture();

            entity.CopyPropertiesFrom(dto);
            entity.FileId           = dto.Id;
            entity.OrgFileExtension = Path.GetExtension(dto.OrgFileName);

            return(entity);
        }
예제 #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);
                }
            }
        }