Example #1
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);
        }