public async Task <IActionResult> Upsert( [FromRoute] Guid id, [FromBody] API.Models.v1.Request.UpsertUserRequest upsertUserRequest) { if (upsertUserRequest == null) { return(BadRequest()); } if (await DoesUserExist(id)) { var updatedUser = await UpdateUser(id, upsertUserRequest); return(Ok(updatedUser)); } var createUserRequest = _mapper.Map <CreateUserRequest>(upsertUserRequest); return(RedirectToAction(nameof(Add), createUserRequest)); }
private async Task <UserResponse> UpdateUser( Guid userId, API.Models.v1.Request.UpsertUserRequest request) { if (request == null) { throw new ArgumentNullException(nameof(request)); } // ToDo // Are we updating or creating? // We need to check if a user with the given identifier exists. // If it does, we are updating, if it does not, we are creating. var updateUserCommand = _mapper.Map <UpdateUserCommand>(request); updateUserCommand.Id = userId; var updatedUser = await _mediator.Send(updateUserCommand); var updatedUserResponse = _mapper.Map <UserResponse>(updatedUser); return(updatedUserResponse); }