Ejemplo n.º 1
0
        public async Task <IActionResult> PutPhoto([FromForm] IFormFile file)
        {
            if (!_imageService.IsSupportedFormat(file.ContentType, file.FileName))
            {
                return(BadRequest());
            }

            string fileName = $"{Guid.NewGuid()}.jpg";
            string url;

            using (Stream originalImageStream = file.OpenReadStream())
                using (Stream resizedImageStream = new MemoryStream())
                {
                    _imageService.ResizeUserImage(originalImageStream, resizedImageStream);
                    url = await _storageService.UploadUserImage(resizedImageStream, fileName);
                }

            int currentUserId = this.GetCurrentUserId();

            User user = await _userDataSource.UpdateImageUrl(currentUserId, url);

            if (user == null)
            {
                return(NotFound());
            }

            return(Ok(user));
        }