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));
        }