private async Task <LoginToResponse> Login(UserToLogin userLogin, SigningConfigurations signingConfigurations, TokenConfiguration tokenConfigurations) { if (userLogin.Email.IsEmail() && !string.IsNullOrEmpty(userLogin.Password)) { var repository = UserRepository.GetInstance(_context); var user = await repository.GetUserLogin(userLogin.Email, userLogin.Password); if (user != null) { var token = GenerateToken.TokenGenerate(user.Email, signingConfigurations, tokenConfigurations); var userDisplay = user.ToDisplay(); if (user.Admin) { var repositoryBusiness = EstablishmmentRepository.GetInstance(_context); userDisplay.Establishmments = repositoryBusiness.GetByAdmin(user.Id).ToDisplay(); } return(LoginToResponse.Create(userDisplay, token)); } } return(null); }
public async Task <Json> PostLogin([FromBody] UserToLogin userLogin, [FromServices] SigningConfigurations signingConfigurations, [FromServices] TokenConfiguration tokenConfigurations) { var user = await Login(userLogin, signingConfigurations, tokenConfigurations); if (user != null) { var userResponse = LoginToResponse.Create(user.User, user.Token); return(Json.Ok("Usuário Validado e autenticado!.", userResponse)); } else { if (Get(userLogin.Email).StatusCode.Value.Equals(200)) { return(Json.NotFound("Senha inválida", false)); } return(Json.NotFound("Usuário não cadastrado!", false)); } }
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)); }