Ejemplo n.º 1
0
        public void VerificaPosicaoClienteAssessorDirect(object state, bool signaled)
        {
            try
            {
                Thread.Sleep(TemporizadorIntervaloVerificacao);

                DB = new PersistenciaDB();

                logger.InfoFormat("Verificação de posição de cliente com Assessor Direct no sinacor");

                List <PlanoClienteInfo> lClientesEmEspera = DB.SelecionaClientesAssessorDirectEmEspera();

                List <PlanoClienteInfo> lEnvio = new List <PlanoClienteInfo>();

                PlanoClienteInfo lInfo = null;

                lClientesEmEspera.ForEach(delegate(PlanoClienteInfo info)
                {
                    if (info.CdCblc != null && info.CdCblc != 0)
                    {
                        logger.InfoFormat("Achou o cliente com o CBLC -  {0}", info.CdCblc);

                        lInfo                = new PlanoClienteInfo();
                        lInfo.DtOperacao     = DateTime.Now;
                        lInfo.CdCblc         = info.CdCblc;
                        lInfo.DtAdesao       = info.DtAdesao;
                        lInfo.DtAdesao       = DateTime.Now;
                        lInfo.StSituacao     = 'A';
                        lInfo.DsCpfCnpj      = info.DsCpfCnpj;
                        lInfo.IdProdutoPlano = info.IdProdutoPlano;
                        lInfo.DsEmail        = info.DsEmail;
                        lInfo.NomeCliente    = info.NomeCliente;
                        lEnvio.Add(lInfo);

                        this.LogAtivacaoPlanoCliente(info);
                    }
                });

                logger.InfoFormat("Encontrou {0} cliente(s) do assessor direct em espera para ativação", lEnvio.Count);

                lEnvio = DB.AtualizaPlanoClienteExistente(lEnvio); //--> Atualiza os clientes novos e já existentes

                lEnvio.ForEach(delegate(PlanoClienteInfo info)
                {
                    this.EnviaNotificacaoAtivacaoPlanoCliente(info);
                });
            }
            catch (Exception ex)
            {
                logger.ErrorFormat("Parando o serviço de VerificaPosicaoClienteDirect  - {0} - StackTrace - {1}", ex.Message, ex.StackTrace);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Verifica se há clientes que foram incluídos no cadastro e podem já
        /// ser atualizados nos planos como "ativados"
        /// </summary>
        public void VerificaPosicaoClienteSinacor(object state, bool signaled)
        {
            try
            {
                Thread.Sleep(TemporizadorIntervaloVerificacao);

                string[] lHoraVerif = ConfigurationManager.AppSettings["HoraVerificacao"].ToString().Split(';');

                List <string> lHorasVerif = lHoraVerif.ToList <string>();

                if (!lHorasVerif.Contains(DateTime.Now.ToString("HH:mm")))
                {
                    return;
                }

                DB = new PersistenciaDB();

                logger.InfoFormat("Verificação de posição de cliente no sinacor");

                List <PlanoClienteInfo> lClientesEmEspera = DB.SelecionaClientesEmEspera();

                logger.InfoFormat("Encontrou {0} cliente(s) em espera para ativação", lClientesEmEspera.Count);

                List <PlanoClienteInfo> lEnvio = new List <PlanoClienteInfo>();

                PlanoClienteInfo lInfo = null;

                lClientesEmEspera.ForEach(delegate(PlanoClienteInfo info)
                {
                    if (info.CdCblc != null && info.CdCblc != 0)
                    {
                        logger.InfoFormat("Achou o cliente com o CBLC -  {0}", info.CdCblc);

                        lInfo = new PlanoClienteInfo();

                        lInfo.DtOperacao = DateTime.Now;

                        lInfo.CdCblc = info.CdCblc;

                        lInfo.DtAdesao = info.DtAdesao;

                        lInfo.DtAdesao = DateTime.Now;

                        lInfo.StSituacao = 'A';

                        lInfo.DsCpfCnpj = info.DsCpfCnpj;

                        lInfo.IdProdutoPlano = info.IdProdutoPlano;

                        lInfo.DsEmail = info.DsEmail;

                        lInfo.NomeCliente = info.NomeCliente;

                        lEnvio.Add(lInfo);

                        this.LogAtivacaoPlanoCliente(info);
                    }
                });


                lEnvio = DB.AtualizaPlanoClienteExistente(lEnvio); //--> Atualiza os clientes novos e já existentes

                lEnvio.ForEach(delegate(PlanoClienteInfo info)
                {
                    this.EnviaNotificacaoAtivacaoPlanoCliente(info);
                });
            }
            catch (Exception ex)
            {
                logger.ErrorFormat("Parando o serviço de VerificaPosicaoClienteSinacor  - {0} - StackTrace - {1}", ex.Message, ex.StackTrace);
            }
        }