public async Task <IActionResult> Post( [FromRoute] Guid userAccountId, [FromBody] ChangeEmailInputModel inputModel) { // Check if user account to change exists UserAccount userAccount = await this._userAccountService .LoadByIdAsync(userAccountId); if (userAccount == null) { return(this.NotFound()); } // Check if new email address is already taken if (await this._userAccountService .LoadByEmailAsync(inputModel.Email) != null) { return(this.BadRequest( nameof(inputModel.Email), "The Email field is invalid, Email already taken." )); } // Send confirmation mail to user if (!inputModel.Force) { return(await this.DoubleOptInAsync(userAccount, inputModel)); } // Update user directly without sending confirmation email await this._userAccountService.SetNewEmailAsync( userAccount, inputModel.Email.ToLower() ); return(this.Ok()); }