/* ===========================================================================================
         *  Edinaldo FIPE
         *  Maio/2020
         *  Envia o email com o erro encontrado - TKSI
         * ==============================================================================================*/
        public void EnviarEmailTratamentoErro(Exception ex, string pRotina = "")
        {
            if ((!FIPEContratosContext.EnvironmentIsProduction) && (ex.ToString().Contains("Timeout expired")))
            {
                return;
            }

            string sMsgErro = ex.ToString() + " " + ex.InnerException;
            string sSubject = "*ERROR [ID:" + AppSettings.constGlobalUserID + "] - " + pRotina;

            if (sMsgErro.Length > 5001)
            {
                sMsgErro = sMsgErro.Substring(0, 5000);
            }
            string corpo = " SQL==> " + ConnnectionString.Substring(0, 80) + " " + sMsgErro;

            _GLog._GravaLog(AppSettings.constGlobalUserID, sSubject + corpo);

            try
            {
                var parametro = db.Parametro.FirstOrDefault();
                if (parametro != null)
                {
                    var emails = parametro.EmailsNotificacao.Split(";");
                    for (int i = 0; i < emails.Length; i++)
                    {
                        if (!String.IsNullOrEmpty(emails[i]))
                        {
                            new bEmail(db).EnviarEmail(emails[i], emails[i], sSubject, corpo, null, string.Empty);
                        }
                    }
                }
                else
                {
                    new bEmail(db).EnviarEmail(sEmailErroDestiny2, sEmailErroName, sSubject + " Sem Parametro em ", corpo, null, string.Empty);
                }
            }
            catch (Exception exx)
            {
                new bEmail(db).EnviarEmail(sEmailErroDestiny2, sEmailErroName, sSubject + " Sem Acesso ao Banco em ", corpo + exx.Message + " " + exx.InnerException, null, string.Empty);
            }
        }
Example #2
0
        public OutputAuth Auth([FromBody] InputAuth auth)
        {
            var retorno = new OutputAuth();

            using (var db = new FIPEContratosContext())
            {
                try
                {
                    if (auth.ResetSenha == true)
                    {
                        var login = db.Usuario.Where(w => w.DsLogin == auth.DsLogin).FirstOrDefault();

                        if (login != null)
                        {
                            // envio de email recuperação de senha
                            var nomePessoa = db.PessoaFisica.Where(w => w.IdPessoaFisica == login.IdPessoa).FirstOrDefault().NmPessoa;
                            var texto      = db.EmailConfigurado.Where(w => w.DsTitulo == "Recuperação de Senha").FirstOrDefault().DsTexto;
                            var corpoEmail = String.Format(texto, nomePessoa, auth.Url + login.NrToken);

                            byte[] anexo = null;
                            new bEmail(db).EnviarEmail(login.DsLogin, nomePessoa, "Recuperação de Senha", corpoEmail, anexo, "");

                            retorno.ResetSenha = true;
                        }
                        else
                        {
                            retorno.ResetSenha = false;
                        }
                        _GLog._GravaLog(login.IdUsuario, "Senha resetada de [" + login.DsLogin + "]");
                        return(retorno);
                    }
                    else
                    {
                        var usuario = new bUsuario(db).Auth(auth.DsLogin, Codificar(auth.CdSenha));

                        if (usuario != null)
                        {
                            var perfilUsuario = db.PerfilUsuario.Where(w => w.IdUsuario == usuario.IdUsuario).FirstOrDefault();
                            var perfil        = db.Perfil.Where(w => w.IdPerfil == perfilUsuario.IdPerfil).OrderBy(x => x.IdPerfil).FirstOrDefault();
                            var nUsuario      = db.PessoaFisica.Where(w => w.IdPessoaFisica == usuario.IdPessoa).FirstOrDefault();

                            usuario.NrToken = Guid.NewGuid();

                            db.SaveChanges();

                            retorno.Result         = true;
                            retorno.PrimeiroAcesso = false;
                            retorno.IdUsuario      = usuario.IdUsuario;
                            retorno.IdPessoa       = usuario.IdPessoa;
                            retorno.DsLogin        = usuario.DsLogin;
                            retorno.PerfilUsuario  = "";
                            retorno.NomeUsuario    = nUsuario.NmPessoa;
                            retorno.NrToken        = usuario.NrToken.ToString();
                            _GLog._GravaLog(usuario.IdUsuario, "Usuario [" + usuario.IdUsuario + "-" + usuario.DsLogin + "] conectado no sistema");
                        }
                        else
                        {
                            retorno.Result = false;
                        }
                    }
                }
                catch (Exception ex)
                {
                    new bEmail(db).EnviarEmailTratamentoErro(ex, "LoginController-Auth");


                    retorno.Result = false;
                }

                return(retorno);
            }
        }