public async Task <bool> EditProfile(EditProfileMessage message) { var user = await GetUserById(message.Id); if (user == null) { return(false); } if (user.Email != message.Email) { if (_userService.VerifyUniqueEmail(message.Email)) { return(false); } await _messagePublisher.PublishMessageAsync("EmailChangedMessage", new { Id = user.Id, Email = message.Email }); } if (user.Nickname != message.Nickname) { await _messagePublisher.PublishMessageAsync("ProfileChangedMessage", new { Id = user.Id, Nickname = message.Nickname }); } user.Email = message.Email; user.Nickname = message.Nickname; _userContext.Update(user); await _userContext.SaveChangesAsync(); return(true); }
public async Task <ApiResult> EditProfile(EditProfileMessage message) { try { var id = User.Claims.First(c => c.Type == ClaimTypes.Name).Value.ToString(); if (message.Id != id) { return(ApiResult.Forbidden("Not allowed")); } return(await _profileService.EditProfile(message) ? ApiResult.Success("Profile edited correctly") : ApiResult.BadRequest("Something went wrong")); } catch (System.Exception) { return(ApiResult.BadRequest("Something went wrong")); } }