public async Task <Json> PostCreate([FromBody] UserToCreate userSend, [FromServices] SigningConfigurations signingConfigurations, [FromServices] TokenConfiguration tokenConfigurations) { var repositoy = UserRepository.GetInstance(_context); if (repositoy.EmailValidation(userSend.Email)) { return(Json.Conflit("Este email está sendo utilizado por outro usuário", userSend)); } var userValidate = userSend.ToValidate(); if (userValidate.Erro) { return(Json.Conflit("Erro ao validar usuário, verifique os erros", userValidate.Erros)); } var userCreate = await repositoy.Create(userSend.ToUserData()); if (userCreate.Erro) { return(Json.Conflit("Falha ao criar usuário!", userCreate.Description)); } var userLogin = UserToLogin.Create(userSend.Email, userSend.Password); var login = await Login(userLogin, signingConfigurations, tokenConfigurations); if (login == null) { return(Json.BadRequest("Falha ao criar usuário", userSend)); } var userResponse = LoginToResponse.Create(login.User, login.Token); return(Json.Ok("Ususário criado com sucesso!", userResponse)); }