示例#1
0
        public async Task <IActionResult> Update([FromBody] UpdateUserImageRequest updateUserImageRequest, Guid userId)
        {
            var command = new UpdateUserImageCommand(updateUserImageRequest.ImageUrl, userId);
            var result  = await Mediator.Send(command);

            return(await ResponseBase(result));
        }
示例#2
0
        public async Task <IActionResult> UploadImageAsync([Required] IFormFile file,
                                                           [FromServices] IUserDirectoryBlobProvider blobProvider,
                                                           [FromServices] UserManager <User> userManager,
                                                           CancellationToken token)
        {
            var userId = userManager.GetLongUserId(User);
            Uri uri;

            try
            {
                uri = await blobProvider.UploadImageAsync(userId, file.FileName, file.OpenReadStream(), file.ContentType, token);
            }
            catch (ArgumentException)
            {
                ModelState.AddModelError("x", "not an image");
                return(BadRequest(ModelState));
            }

            if (uri == null)
            {
                ModelState.AddModelError("x", "not an image");
                return(BadRequest(ModelState));
            }
            var imageProperties = new ImageProperties(uri, ImageProperties.BlurEffect.None);
            var url             = Url.ImageUrl(imageProperties);
            var fileName        = uri.AbsolutePath.Split('/').LastOrDefault();
            var command         = new UpdateUserImageCommand(userId, url, fileName);
            await _commandBus.DispatchAsync(command, token);

            return(Ok(url));
        }
示例#3
0
        public async Task <BaseResponse <string> > Handle(UpdateUserImageCommand request, CancellationToken cancellationToken)
        {
            var user = await _applicationDbContext.Users.FindAsync(request.UserId);

            var response = new BaseResponse <string>();

            if (user == null)
            {
                response.SetValidationErrors(new [] { "User Not Found!" });
                return(response);
            }

            user.Image = request.ImageUrl;

            await _applicationDbContext.SaveChangesAsync(cancellationToken);

            response.SetIsOk("Image Updated!");

            return(response);
        }