public async Task <IActionResult> PostUser(InputUser inputUser, [FromServices] IOptions <ApiBehaviorOptions> apiBehaviorOptions) { inputUser.HashPassword(_passwordHash); var user = inputUser.ToModel(); if (await CpfExists(user.Cpf)) { ModelState.AddModelError(nameof(user.Cpf), "User Cpf already in use"); } if (await EmailExists(user.Email)) { ModelState.AddModelError(nameof(user.Email), "User Email already in use"); } if (!ModelState.IsValid) { return(apiBehaviorOptions.Value.InvalidModelStateResponseFactory(ControllerContext)); } await _context.Users.AddAsync(user); await _context.SaveChangesAsync(); return(Ok(_outputHandler.OutputFor(user))); }