/// <summary> /// Atualiza o tipo de corretagem do cliente no sinacor TSCCLIBOL /// </summary> private void AtualizaPlanoCorretagemClienteSinacor(PlanoClienteInfo pRequest) { try { AcessaDados acesso = new AcessaDados(); acesso.ConnectionStringName = _ConnstringCorrWin; string lQuery = string.Format("UPDATE TSCCLIBOL SET IN_TIPO_CORRET = 1 WHERE CD_CLIENTE = {0}", pRequest.CdCblc); using (DbCommand cmdUpd = acesso.CreateCommand(CommandType.Text, lQuery)) { acesso.ExecuteNonQuery(cmdUpd); } //string lQueryCus = string.Format("UPDATE TSCCLICUS SET TP_CUSTODIA = 351 WHERE CD_CLIENTE = {0}", pRequest.CdCblc); //using (DbCommand cmdUpd = acesso.CreateCommand(CommandType.Text, lQueryCus)) //{ // acesso.ExecuteNonQuery(cmdUpd); //} } catch (Exception ex) { logger.ErrorFormat("Erro em AtualizaPlanoCorretagemClienteSinacor- {0} - Stacktrace - {1}", ex.Message, ex.StackTrace); throw ex; } }
private IntegracaoIRInfo CriarRegistroIntegracaoIRInfo(PlanoClienteInfo pPlanoCliente) { var lRetorno = new IntegracaoIRInfo(); var lAcessaDados = new AcessaDados(); lAcessaDados.ConnectionStringName = "Cadastro"; using (DbCommand lDbCommand = lAcessaDados.CreateCommand(CommandType.StoredProcedure, "cliente_endereco_lst_sp")) { lAcessaDados.AddInParameter(lDbCommand, "@cd_bovespa", DbType.Int32, pPlanoCliente.CdCblc); lAcessaDados.AddInParameter(lDbCommand, "@st_principal", DbType.Int32, 1); var lDataTable = lAcessaDados.ExecuteDbDataTable(lDbCommand); if (null != lDataTable && lDataTable.Rows.Count > 0) { lRetorno.Cidade = lDataTable.Rows[0]["ds_cidade"].DBToString(); lRetorno.Estado = lDataTable.Rows[0]["cd_uf"].DBToString(); } } lRetorno.IdBovespa = Convert.ToInt32(this.ToCodigoClienteComDigito(pPlanoCliente.CdCblc)); //coloca o digito no código CBLC lRetorno.Email = this.GetEmailPadraoCliente; lRetorno.dataFim = pPlanoCliente.DtFimAdesao; lRetorno.EstadoBloqueado = "S"; return(lRetorno); }
private void AtualizarPlanoClienteSql(PlanoClienteInfo pRequest) { var lRetorno = new IntegracaoIRInfo(); var lAcessaDados = new AcessaDados(); lAcessaDados.ConnectionStringName = "Seguranca"; try { using (DbCommand lDbCommand = lAcessaDados.CreateCommand(CommandType.StoredProcedure, "prc_ClienteProduto_upd")) { lAcessaDados.AddInParameter(lDbCommand, "@ds_cpfcnpj", DbType.AnsiString, pRequest.DsCpfCnpj); lAcessaDados.AddInParameter(lDbCommand, "@dt_fim_adesao", DbType.DateTime, pRequest.DtFimAdesao); lAcessaDados.AddInParameter(lDbCommand, "@st_situacao", DbType.String, pRequest.StSituacao); lAcessaDados.AddInParameter(lDbCommand, "@id_produto_plano", DbType.Int32, pRequest.IdProdutoPlano); lAcessaDados.ExecuteNonQuery(lDbCommand); } } catch (Exception ex) { logger.ErrorFormat("Erro ao Atualizar Plano cliente no SQL Sever - Error - {0} ", ex.Message); throw ex; } }
/// <summary> /// Log de Email ativando /// </summary> /// <param name="info">Informações do cliente e do produto</param> private void LogAtivacaoPlanoCliente(PlanoClienteInfo info) { logger.InfoFormat("Email..............: {0}", info.DsEmail); logger.InfoFormat("Nome...............: {0}", info.NomeCliente); logger.InfoFormat("Id Do Produto......: {0}", info.IdProdutoPlano); logger.InfoFormat("CPFCNPJ............: {0}", info.DsCpfCnpj); logger.InfoFormat("Codigo CBLC........: {0}", info.CdCblc); logger.InfoFormat("Situação...........: {0}", info.StSituacao); logger.InfoFormat("Dt Operação........: {0}", info.DtOperacao); logger.InfoFormat("DT Adesão..........: {0}", info.DtAdesao); }
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> /// Envia e-mail para o cliente para com a notificação de ativação do plano /// </summary> private void EnviaNotificacaoAtivacaoPlanoCliente(PlanoClienteInfo info) { try { var lServico = Ativador.Get <IServicoEmail>(); logger.InfoFormat("Conseguiu instanciar o serviço Ativador.Get<IServicoEmail>"); StreamReader lStream = new StreamReader(Path.Combine(ConfigurationManager.AppSettings["pathArquivoEmailNotificacao"].ToString(), "EmailNotificacaoAtivacaoPlano.txt")); string lCorpoEmail = lStream.ReadToEnd(); var lEmail = new EnviarEmailRequest(); lEmail.Objeto = new EmailInfo(); lEmail.Objeto.Assunto = "Notificação de ativação do DirectTrade"; lEmail.Objeto.Destinatarios = new List <string>(); lEmail.Objeto.Destinatarios.Add(info.DsEmail); logger.InfoFormat(string.Format("Enviando e-mail de notificação de ativação de plano para para {0}", info.DsEmail)); lEmail.Objeto.Remetente = ConfigurationManager.AppSettings["EmailRemetenteNotificacao"].ToString(); lEmail.Objeto.CorpoMensagem = lCorpoEmail.Replace("###NOME###", info.NomeCliente); logger.InfoFormat("Entrou no método de EnviaEmailAvisoPlanoCliente"); EnviarEmailResponse lResponse = lServico.Enviar(lEmail); if (lResponse.StatusResposta.Equals(MensagemResponseStatusEnum.OK)) { logger.Info("Email disparado com sucesso"); } else { logger.ErrorFormat("O e-mail não foi disparado - Descrição: {0} ", lResponse.DescricaoResposta); } } catch (Exception ex) { logger.ErrorFormat("Erro em EnviaEmailAvisoPlanoCliente - {0} - StackTrace - {1}", ex.Message, ex.StackTrace); } }
private void AtualizarPlanoClienteOracle(PlanoClienteInfo pRequest) { var lIntegracaoIR = new IntegracaoIRInfo(); var lAcessaDados = new AcessaDados(); lAcessaDados.ConnectionStringName = "MyCapital"; try { using (DbCommand lDbCommand = lAcessaDados.CreateCommand(CommandType.StoredProcedure, "INS_MYC_INTEGRACAO")) { lDbCommand.Parameters.Clear(); lIntegracaoIR = this.CriarRegistroIntegracaoIRInfo(pRequest); lAcessaDados.AddInParameter(lDbCommand, "P_CODIGOBOVESPACLIENTE", DbType.Int32, lIntegracaoIR.IdBovespa); lAcessaDados.AddInParameter(lDbCommand, "P_EMAILUSUARIO", DbType.String, lIntegracaoIR.Email); lAcessaDados.AddInParameter(lDbCommand, "P_CIDADEUSUARIO", DbType.String, lIntegracaoIR.Cidade); lAcessaDados.AddInParameter(lDbCommand, "P_ESTADOUSUARIO", DbType.String, lIntegracaoIR.Estado); lAcessaDados.AddInParameter(lDbCommand, "P_DTAINICIOLANCAMENTOUSUARIO", DbType.DateTime, lIntegracaoIR.dataFim); lAcessaDados.AddInParameter(lDbCommand, "P_STABLOQUEADO", DbType.String, lIntegracaoIR.EstadoBloqueado); lAcessaDados.AddInParameter(lDbCommand, "P_CODIGOEVENTO", DbType.Int32, IntegracaoIRInfo.CodigoEvento.CANCELAR); lAcessaDados.AddInParameter(lDbCommand, "P_DESCRICAO", DbType.String, lIntegracaoIR.Descricao); lAcessaDados.AddInParameter(lDbCommand, "P_TPOPRODUTO", DbType.Int32, IntegracaoIRInfo.TipoProduto.BOVESPA); lAcessaDados.ExecuteNonQuery(lDbCommand); } } catch (Exception ex) { logger.ErrorFormat("Erro ao Atualizar Plano cliente no MyCapital - Error - {0} ", ex.Message); throw ex; } }
/// <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); } }