예제 #1
0
        public ActionResult Alterar(Usuario u, int id)
        {
            ConexaoDb2 conexao = new ConexaoDb2();

            conexao.AlterarUsuario(u, id);
            return(RedirectToAction("Index", "Consultas", null));
        }
예제 #2
0
        public ActionResult Index(Usuario usuario)
        {
            if (Request.Form["Senha"] == Request.Form["ConfirmarSenha"])
            {
                ConexaoDb2 conexao = new ConexaoDb2();
                conexao.CriarUsuario(usuario);

                TempData["UsuarioCriado"] = @"O usuário foi criado, porém é necessário ativá-lo para consulta. Você receberá um email com o procedimento 
                                            para ativar seu usuário.";

                string mensagem = @"Olá " + char.ToUpper(usuario.Nome[0]) + usuario.Nome.Substring(1) + ", bem vindo ao sistema Alvo. <br>" +
                                  "Para ativar seu usuário é necessário entrar em contato com nosso suporte pelo telefone (11) 3266-3124. <br>" +
                                  "Mediante a contratação do serviço, seu usuário será habilitado. <br>" +
                                  "Aguardamos seu contato.<br> Atenciosamente, Alvo";

                Email email = new Email(usuario.Email, mensagem, "Falta pouco para você começar a usar o Alvo");
                email.DispararMensagem();
            }

            else
            {
                usuario.Senha        = String.Empty;
                ViewBag.MensagemErro = "Senhas não correspondem.";
                return(View(usuario));
            }

            return(RedirectToAction("Index", "Home", null));
        }
예제 #3
0
        public ActionResult AlterarSenha(int id)
        {
            //Alterar senha
            ConexaoDb2 conexao = new ConexaoDb2();
            Usuario    u       = conexao.RecuperarDadosUsuario(id);

            return(View(u));
        }
예제 #4
0
        public ActionResult ListaSolicitacoes()
        {
            List <Solicitacao> solicitacoes = new List <Solicitacao>();

            ConexaoDb2 db = new ConexaoDb2();

            solicitacoes = db.ConsultarSolicitacoes(Convert.ToInt16(Session["idUsuario"]));

            return(this.Content(new Parser().ToXML(solicitacoes), "text/xml"));
        }
예제 #5
0
        //
        // GET: /Consultas/
        public ActionResult Index()
        {
            List <Solicitacao> solicitacoes = new List <Solicitacao>();

            ConexaoDb2 db = new ConexaoDb2();

            solicitacoes = db.ConsultarSolicitacoes(Convert.ToInt16(Session["idUsuario"]));

            return(View(solicitacoes));
        }
예제 #6
0
        public FileResult ErrosCsv(int idSolicitacao)
        {
            //Grava os erros em um arquivo de saída e retorna para o usuário

            ConexaoDb2 db      = new ConexaoDb2();
            Parser     parse   = new Parser();
            string     arquivo = String.Empty;

            arquivo = parse.GerarArquivoErro(db.RecuperarErro(idSolicitacao));

            return(File(Parser.ConverterTextoStreamMemoria(arquivo), "csv", "Erros_Consulta_U" + Session["idUsuario"] + "_S" + idSolicitacao.ToString() + ".csv"));
        }
예제 #7
0
 public ActionResult AlterarSenha(Usuario u, int id)
 {
     //Alterar senha
     if (u.Senha == Request.Form["ConfirmarSenha"])
     {
         ConexaoDb2 conexao = new ConexaoDb2();
         conexao.AlterarSenha(u, id);
         return(RedirectToAction("Index", "Consultas", null));
     }
     else
     {
         ViewBag.MensagemErro = "Senhas não correspondem.";
         u.Senha = String.Empty;
         return(View(u));
     }
 }
예제 #8
0
        public ActionResult Index(string foo)
        {
            ConexaoDb2 conexao   = new ConexaoDb2();
            int        idUsuario = conexao.VerificarAcessoUsuario(Request.Form["Usuario"], Request.Form["Senha"], Request.ServerVariables.Get("REMOTE_ADDR"));

            Session["idUsuario"] = idUsuario;
            System.Web.Security.FormsAuthentication.SetAuthCookie(Request.Form["Usuario"], false);

            string returnUrl = Request.Form["returnUrl"];

            if (this.Url.IsLocalUrl(returnUrl))
            {
                return(Redirect(returnUrl));
            }
            else
            {
                return(RedirectToAction("Index", "Consultas", null));
            }
        }
예제 #9
0
        public ActionResult ResultadoXML(int idSolicitacao)
        {
            //Grava os extratos em um arquivo de saída e retorna para o usuário
            ConexaoDb2 db          = new ConexaoDb2();
            Parser     parse       = new Parser();
            string     ArquivoTemp = String.Empty;

            string nomeArquivo = @"e:\home\agilus\Temp\" + "ConsultaXml_U" + Session["idUsuario"] + "_S" + idSolicitacao.ToString() + ".xml";

            if (!System.IO.File.Exists(nomeArquivo))
            {
                //Arquivo com Resultados
                ArquivoTemp = db.RecuperarResultado(idSolicitacao, TipoRetorno.xml);

                //Renomeando arquivo
                System.IO.File.Move(ArquivoTemp, nomeArquivo);
            }

            return(File(nomeArquivo, "application/xml", "ConsultaXml_U" + Session["idUsuario"] + "_S" + idSolicitacao.ToString() + ".xml"));
        }
예제 #10
0
        public ActionResult Incluir(ArquivoUpload arquivoUpload, string Descricao)
        {
            string nomeArquivo;
            int    idSolicitacaoGerada = -1, idUsuario;

            idUsuario = (int)Session["idUsuario"];

            nomeArquivo = @"e:\home\agilus\Temp\" + Path.GetRandomFileName().Replace(".", "");
            arquivoUpload.arquivo.SaveAs(nomeArquivo);

            ConexaoDb2  db                = new ConexaoDb2();
            ManipulaCsv arquivoMatriculas = new ManipulaCsv();

            //Verificar SALDO, se tiver 2 consultas libera leitura de matrículas e guarda em uma varialvel valor do saldo
            int saldo = db.VerificarSaldo(idUsuario);

            if (saldo >= 2)
            {
                List <string> matriculas = arquivoMatriculas.LerCsv(nomeArquivo);

                //Verificar se o número de beneficios é maior que o saldo;
                if (matriculas.Count <= saldo)
                {
                    List <string> LoteConsulta = new List <string>();
                    int           cont         = 0;
                    int           i            = 0;
                    //Abriria conexão

                    while (cont < matriculas.Count)
                    {
                        while (i < 1000 && cont < matriculas.Count)
                        {
                            LoteConsulta.Add(matriculas[cont].Trim());
                            i++;
                            cont++;
                        }

                        // Solicitacao de consulta no servidor e gravação de resultado no banco de dados
                        Parser   metodos = new Parser();
                        Consulta consultaRV, consultaTitular, consultaConbas = new Consulta();

                        //Lote RV
                        consultaRV = metodos.InterpretarJsonPedidoConsulta(Servidor.RealizarPedido(LoteConsulta, Contexto.rv));

                        //Lote Titular
                        consultaTitular = metodos.InterpretarJsonPedidoConsulta(Servidor.RealizarPedido(LoteConsulta, Contexto.titular));

                        //Lote Conbas
                        consultaConbas = metodos.InterpretarJsonPedidoConsulta(Servidor.RealizarPedido(LoteConsulta, Contexto.conbas));

                        if (idSolicitacaoGerada == -1)
                        {
                            idSolicitacaoGerada = db.InserirSolicitacao(idUsuario, Descricao); //Pego o código da última solicitação inserida por este usuário.
                        }

                        if (!(saldo == 500000))
                        {
                            db.InserirExtrato(idUsuario, idSolicitacaoGerada, matriculas.Count);
                        }

                        db.InserirConsulta(consultaRV, idSolicitacaoGerada);
                        db.InserirConsulta(consultaTitular, idSolicitacaoGerada);
                        db.InserirConsulta(consultaConbas, idSolicitacaoGerada);
                        //VErificacao
                        i = 0;
                        LoteConsulta.Clear();
                    }
                }

                else
                {
                    throw new Exception("Você tem " + saldo + " consultas disponíveis. Reduza o número de benefícios para que a consulta seja realizada");
                }
            }

            else
            {
                throw new Exception("Você tem menos de 2 consultas disponíveis. Para realizar as consultas em lote você precisa ter pelo menos 2 consultas.");
            }
            System.IO.File.Delete(nomeArquivo);
            return(RedirectToAction("Index", "Consultas", null));
        }
예제 #11
0
        public string Atualizar()
        {
            string retorno = "OK";

            //Se a solicitação já está com o status Download, significa que os lotes foram coletados, portanto o controller faz apenas 1 refresh.
            ConexaoDb2 db           = new ConexaoDb2();
            var        solicitacoes = db.ConsultarSolicitacoesPendentes();

            foreach (var solicitacao in solicitacoes)
            {
                bool haviamlotesPendentes = false;

                if (!(db.SolicitacaoColetada(solicitacao.Id)))
                {
                    haviamlotesPendentes = true;
                    Parser parse = new Parser();

                    //lista que contém as consultas não coletadas.
                    List <Consulta> consultasSolicitadas = db.ListarConsultasSolicitacao(solicitacao.Id);
                    try
                    {
                        foreach (var consulta in consultasSolicitadas)
                        {
                            if (!db.VerificarConsultaProcessada(consulta.Id))
                            {
                                //Se o lote não foi processado é realizada a consulta no servidor e o status do processo é atualizado no banco de dados
                                db.AtualizarConsulta(parse.InterpretarJsonPedidoConsulta(Servidor.ConsultarStatusPedido(consulta.Chave)));
                            }

                            else
                            {
                                //Se a consulta foi processada é necessário fazer a coleta.
                                db.inserirResultado(parse.InterpretarJsonConsultarBuscaLote(Servidor.buscarPedido(consulta.Chave)), (int)consulta.Id, solicitacao.Id, consulta.Status);
                            }
                        }
                    }
                    finally
                    {
                        db.LiberarAtualizandoStatus(solicitacao.Id);
                    }
                }

                if (haviamlotesPendentes)
                {
                    /*Quando haviam lotes pendentes na solicitação é feita uma verificação para saber se os lotes foram coletados, se foram todos coletados
                     * a soliticação passa para o status download, (após ser coletada, ele não passa mais neste if), e
                     * é disparado um email para o usuário informando que o arquivo já pode ser baixado.*/

                    //Conectando no banco de dados
                    ConexaoDb2 conexao             = new ConexaoDb2();
                    bool       SolicitacaoCompleta = conexao.AtualizarStatusSolicitacao();

                    //Rotina de disparo de email
                    if (SolicitacaoCompleta)
                    {
                        Usuario u = new Usuario();

                        //Obtendo usuário da solicitação atual
                        int idUsuario = conexao.IdUsuarioSolicitacao(solicitacao.Id);
                        u = conexao.RecuperarDadosUsuario(idUsuario);

                        //Criando link de download para encaminhar no email
                        string ArquivoDownload = @"http://www.agilus.com.br/Alvo/Consultas/ResultadoCsv?idSolicitacao=" + solicitacao.Id.ToString();

                        //Gerando arquivo com dados da solicitação
                        Parser.CriarArquivoCSVDisco(solicitacao.Id, "Consulta_U" + idUsuario.ToString() + "_S" + solicitacao.Id.ToString() + ".csv");

                        //Disparar email
                        string assunto = "Sua consulta foi processada com sucesso";

                        string mensagem = @"Olá " + char.ToUpper(u.Nome[0]) + u.Nome.Substring(1) + ".<br>" +
                                          @"Sua consulta foi finalizada e você pode baixar o arquivo com o resultado no link abaixo.<br> " + ArquivoDownload + "<br> " +
                                          @"Para fazer o download do arquivo, será necessário digitar seu login e senha. Após isto o download iniciará automaticamente.";

                        Email email = new Email(u.Email, mensagem, assunto);
                        email.DispararMensagem();
                    }
                }
            }
            return(retorno);
        }