예제 #1
0
        public async Task <TblEmails> Delete(int idEmail)
        {
            TblEmails email = await _repository.GetById(idEmail);

            email.DFim = DateTime.Now;

            return(await _repository.Update(email));
        }
예제 #2
0
        public async Task <TblEmails> Update(TblEmails email)
        {
            _context.Entry(email).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();

                return(email);
            }
            catch (Exception exception)
            {
                throw exception;
            }
        }
예제 #3
0
        public async Task <TblEmails> Create(TblEmails email)
        {
            _context.TblEmails.Add(email);

            try
            {
                await _context.SaveChangesAsync();

                return(email);
            }
            catch (Exception exception)
            {
                throw exception;
            }
        }
예제 #4
0
        public async Task <ActionResult <TblEmails> > Update([FromBody] TblEmails email)
        {
            if (email == null)
            {
                return(BadRequest(ModelState));
            }

            try
            {
                return(Ok(await _service.Update(email)));
            }
            catch (Exception exception)
            {
                return(BadRequest(exception));
            }
        }
예제 #5
0
        public async Task <object> Login(CredentialsModel credentials)
        {
            // Variável auxiliar
            TblPessoas baseUser = new TblPessoas();

            // Altera o fluxo dependendo a validação solicitada
            if (credentials.GrantType == "password")
            {
                // Verifica se o usuário ou senha são nulos
                if (!string.IsNullOrWhiteSpace(credentials.User) && !string.IsNullOrWhiteSpace(credentials.Password))
                {
                    // Variáveis auxiliares
                    bool userExiste = false;
                    int  idPessoa   = 0;

                    // Determina se é email ou cpf e busca a existência do dado
                    if (credentials.User.All(char.IsDigit))
                    {
                        TblDocumentos documento = await _documentosService.GetByDocumento(credentials.User);

                        if (documento != null)
                        {
                            userExiste = true;
                            idPessoa   = documento.NIdPessoa;
                        }
                    }
                    else
                    {
                        TblEmails email = await _emailsService.GetByEmail(credentials.User);

                        if (email != null)
                        {
                            userExiste = true;
                            idPessoa   = email.NIdPessoa;
                        }
                    }

                    if (userExiste)
                    {
                        // Converte a senha em base64
                        var    plainTextBytes = Encoding.UTF8.GetBytes(credentials.Password);
                        string encodedText    = Convert.ToBase64String(plainTextBytes);
                        credentials.Password = encodedText;

                        // Verifica a existência
                        bool senhaExiste = (await _senhasService.GetBySenha(idPessoa, credentials.Password) != null);

                        if (senhaExiste && idPessoa > 0)
                        {
                            baseUser = await _pessoasService.GetById(idPessoa);
                        }
                        else
                        {
                            throw new ArgumentException("Usuário e/ou senha incorreto(s).", "mensagem");
                        }
                    }
                    else
                    {
                        throw new ArgumentException("Usuário não existe.", "mensagem");
                    }
                }
                else
                {
                    throw new ArgumentException("Usuário e/ou senha incorreto(s).", "mensagem");
                }
            }
            else if (credentials.GrantType == "refresh_token")
            {
                // Verifica se o usuário ou refresh token são nulos
                if (!string.IsNullOrWhiteSpace(credentials.User) && !string.IsNullOrWhiteSpace(credentials.RefreshToken))
                {
                    bool tokenValido = false;
                    // Busca a pessoa relacionada ao token (User = ID)
                    baseUser = await _pessoasService.GetById(Convert.ToInt32(credentials.User));

                    tokenValido = _tokenService.DeleteToken(credentials.RefreshToken, baseUser.NIdPessoa);

                    if (!tokenValido)
                    {
                        throw new ArgumentException("Usuário e/ou token inválido(s).", "mensagem");
                    }
                }
                else
                {
                    throw new ArgumentException("Usuário e/ou token inválido(s).", "mensagem");
                }
            }

            return(_tokenService.CreateToken(baseUser.NIdPessoa));
        }
예제 #6
0
        public async Task <TblEmails> Update(TblEmails email)
        {
            email.DAlteracao = DateTime.Now;

            return(await _repository.Update(email));
        }
예제 #7
0
        public async Task <TblEmails> Create(TblEmails email)
        {
            email.DInicio = DateTime.Now;

            return(await _repository.Create(email));
        }