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