Beispiel #1
0
        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)));
        }