public async Task <IActionResult> Post([FromRoute] string userId, [FromBody] ProfileImageDto dto) { // Angefragter User wird aus der DB geladen. var catworkUser = await _context.CatworkUsers.SingleOrDefaultAsync(m => m.UserId == userId); if (catworkUser == null) { return(NotFound()); } // Base64 encodiertes Bild wird in ByteArray umgewandelt byte[] imageByteArray = Convert.FromBase64String(dto.Base64); // Memorystream wird aus ByteArray erstellt und an den BlobStorageService übergeben. // Die URL wird in der DB gespeichert. using (var ms = new MemoryStream(imageByteArray)) { catworkUser.ProfilePicture = await _blobStorageService.WriteProfileImageToBlob(ms, userId); } _context.Update(catworkUser); await _context.SaveChangesAsync(); // Die neue URL wird in den Servicebus geschrieben. await _serviceBusService.SendMessageAsync(catworkUser.ProfilePicture); return(Ok()); }
public async Task <string> UpdateProfileImage(string userId, ProfileImageDto profileImageDto) { var user = await GetUserById(userId); if (user == null) { throw new AuthenticationException(); } var uri = ImageService.SaveImage(profileImageDto.Image); user.ImageUri = uri ?? throw new ArgumentException("Unable to upload the image"); var result = await _userManager.UpdateAsync(user); if (!result.Succeeded) { throw new ArgumentException("Failed to update"); } return(await GenerateJwtToken(user)); }
public async Task <IActionResult> UpdateImage([FromForm] ProfileImageDto profileImageDto) { return(await Do(async() => await _userService.UpdateProfileImage(User.Identity.GetUserId(), profileImageDto))); }