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); } }
/// <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); } }