public async Task <IActionResult> Get() { var userProfileId = Convert.ToInt32(User.FindFirst(ClaimTypes.Name)?.Value); var userProfile = await _userProfileReader.GetByUserProfileId(userProfileId); if (userProfile == null) { return(NotFound()); } var response = new UserProfileResponse { Id = userProfile.Id, EmailAddress = userProfile.EmailAddress, GivenName = userProfile.GivenName, FamilyName = userProfile.FamilyName, ProfilePicturePath = _cdnResolver.Resolve(userProfile.ProfilePicturePath) }; return(Ok(response)); }
public async Task<IActionResult> ChangeProfilePicture() { var userProfileId = Convert.ToInt32(User.FindFirst(ClaimTypes.Name)?.Value); var userProfile = await _userProfileReader.GetByUserProfileId(userProfileId); if (userProfile == null) { return NotFound(); } if (Request.Form.Files.Count == 0) { return BadRequest("You must attach an image"); } var profilePicture = Request.Form.Files[0]; if (profilePicture.Length > 3000000) { return StatusCode(413); } var acceptedContentTypes = new List<string> { "image/png", "image/jpg", "image/jpeg", "image/gif" }; if (!acceptedContentTypes.Contains(profilePicture.ContentType)) { return StatusCode(415); } var fileName = Guid.NewGuid().ToString(); var existingProfilePictureFileName = userProfile.ProfilePictureFileName; const string CONTAINER_NAME = "profilepictures"; var absoluteFilePath = await _storeFile.StoreFile(CONTAINER_NAME, fileName, profilePicture); await _userProfileWriter.SetProfilePicturePath(userProfile.Id, absoluteFilePath, fileName); if (!string.IsNullOrEmpty(existingProfilePictureFileName)) { await _storeFile.DeleteFile(CONTAINER_NAME, existingProfilePictureFileName); } return NoContent(); }