public void Adicionar(Usuario usuario)
        {
            if (usuario.EhInvalido())
            {
                throw new ValidadorException(validationFailures: usuario.ListarErros());
            }

            var usuarioNoContexto = _usuarioRepositorio.BuscarPorLogin(usuario.Login);

            if (usuarioNoContexto != null)
            {
                throw new ValidadorException(
                          message: UsuarioRegras.UsuarioJaCadastrado.Descricao,
                          mostrarParaUsuario: true,
                          ehSomenteAlerta: true);
            }

            var pessoaNoContexto = _pessoaRepositorio.BuscarPorEmail(usuario.DadosPessoais.EmailOpcao1);

            if (pessoaNoContexto != null)
            {
                throw new ValidadorException(
                          message: PessoaRegras.EmailJaCadastrado.Descricao,
                          mostrarParaUsuario: true,
                          ehSomenteAlerta: true);
            }

            pessoaNoContexto = _pessoaRepositorio.BuscarPorEmail(usuario.DadosPessoais.EmailOpcao2);

            if (pessoaNoContexto != null)
            {
                throw new ValidadorException(
                          message: PessoaRegras.EmailJaCadastrado.Descricao,
                          mostrarParaUsuario: true,
                          ehSomenteAlerta: true);
            }

            _usuarioRepositorio.Adicionar(usuario);
            _pessoaRepositorio.Adicionar(usuario.DadosPessoais);
        }
Ejemplo n.º 2
0
        public async Task <AutenticacaoResponse> BuscarLoginAsync(LoginRequest usuario)
        {
            ValidarLogin(usuario);

            bool credentialsIsValid = false;

            if (usuario != null && !string.IsNullOrWhiteSpace(usuario.Login))
            {
                var baseUser = _repositorio.BuscarPorLogin(usuario.Login);

                credentialsIsValid = (baseUser != null && usuario.Login.Equals(baseUser.Login) && usuario.Senha.Equals(baseUser.Senha));
            }

            if (credentialsIsValid)
            {
                ClaimsIdentity identity = new ClaimsIdentity(
                    new GenericIdentity(usuario.Login, "Login"),
                    new[]
                {
                    new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString("N")),
                    new Claim(JwtRegisteredClaimNames.UniqueName, usuario.Login)
                }
                    );

                DateTime createDate     = DateTime.Now;
                DateTime expirationDate = createDate.AddMinutes(Convert.ToDouble(EnvConstants.TEMPOEXPIRACAOTOKEN));

                var    handler = new JwtSecurityTokenHandler();
                string token   = CreateToken(identity, createDate, expirationDate, handler);

                return(await Task.FromResult(SuccessObject(createDate, expirationDate, token)));
            }
            else
            {
                return(await Task.FromResult(ExceptionObject()));
            }
        }