public async Task <IActionResult> Create([FromBody] ImageCreateDTO imageDTO) { var location = GetControllerActionName(); try { logger.LogInfo($"{location}: Create Image"); if (imageDTO == null) { logger.LogWarn($"{location}: Image object is empty"); return(BadRequest(ModelState)); } if (!ModelState.IsValid) { logger.LogWarn($"{location}: Image object is incomplete"); return(BadRequest(ModelState)); } var image = mapper.Map <Image>(imageDTO); var isSuccess = await imageRepository.Create(image); if (!isSuccess) { InternalError($"{location}: Create Image failed"); } logger.LogInfo($"{location}: Create Image successful"); return(Created("Create", new { image })); } catch (Exception e) { return(InternalError($"{location}: {e.Message} - {e.InnerException}")); } }
public async Task <Response <ResourceImageDTO> > CreateImageResource(Guid userId, FileGroup @group, ImageCreateDTO dto) { var resource = await CreateImageResource(userId, group.ToString().ToLower(), dto); var viewModel = new ResourceImageViewModel(resource); var result = _mapper.Map <ResourceImageViewModel, ResourceImageDTO>(viewModel); return(new Response <ResourceImageDTO> { Data = result }); }
private async Task <ResourceModel> CreateImageResource(Guid userId, string group, ImageCreateDTO dto) { var fileName = Guid.NewGuid().ToString("N"); var resourceEntity = new ResourceModel { UserId = userId, Group = group, FileName = fileName, ContentType = dto.ContentType, CreatedDate = DateTime.UtcNow, IsWithResolution = true }; var resource = await _repository.Create(resourceEntity); await _filesService.UploadImageFile(group, "original", fileName, dto.Stream); var baseImage = ImageResizer.GetBaseImage(dto.Stream); foreach (var size in CropSizesSettings.Sizes) { var image = ImageResizer.GetResizedImage(baseImage, size, dto.ContentType); await _filesService.UploadImageFile(group, size.ToString(), fileName, image); image.Dispose(); } dto.Stream.Dispose(); return(resource); }