Ejemplo n.º 1
0
        public async Task <bool> UpdateImageAsync(int userId, UpdateDto_Image imageUpdate)
        {
            var user = await GetByIdAsync(userId);

            DbEntity_Image image;

            try
            {
                image = await GetImageAsync(user);
            }
            catch (NotFoundException)
            {
                var newImage = Mapper.Map <DbEntity_Image>(imageUpdate);
                await _ksuGdcContext.Images.AddAsync(newImage);

                var userImage = new DbEntity_UserImage()
                {
                    UserId  = user.UserId,
                    ImageId = newImage.ImageId
                };
                await _ksuGdcContext.UserImages.AddAsync(userImage);

                return(true);
            }
            Mapper.Map(imageUpdate, image);
            _ksuGdcContext.Images.Update(image);
            return(true);
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> UpdateImage([FromRoute] int userId, [FromForm] IFormFile image)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(new ErrorResponse(ModelState)));
                }
                if (image == null || image.Length == 0)
                {
                    return(BadRequest(new ErrorResponse("A valid image is required.")));
                }
                var contentType = image.ContentType.Trim().ToLower();
                if (!contentType.StartsWith("image/", StringComparison.CurrentCulture))
                {
                    return(BadRequest(new ErrorResponse("Uploaded file must be an image")));
                }
                var stream = new MemoryStream();
                await image.OpenReadStream().CopyToAsync(stream);

                var imageUpdate = new UpdateDto_Image()
                {
                    Name        = "user_profile",
                    Data        = stream.ToArray(),
                    ContentType = contentType
                };
                await _userService.UpdateImageAsync(userId, imageUpdate);

                await _userService.SaveChangesAsync();

                return(Ok());
            }
            catch (NotFoundException ex)
            {
                return(NotFound(ex.Message));
            }
            catch (Exception)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError));
            }
        }