public String RestricaoTeste(Int32 codigoOrganizacao, Int32 idCanal, Int32 codigoConfiguracaoMensagem, String cpfCnpj, String destinatario, String numeroCartao, String segmento, Int64 transacao, Int32 idGrupoTeste) { String listaRestricoesTeste = ""; try { // Carrega dados da configuração de Envio de Mensagem de um tipo de Canal de uma Organização. CaseBusiness.CC.Mensageria.Configuracao confMensageria = new CaseBusiness.CC.Mensageria.Configuracao(codigoOrganizacao, idCanal, UsuarioManutencao.ID); var horarioAtual = TimeSpan.Parse(DateTime.Now.ToString("0:HH:mm:ss")); var horarioInicio = TimeSpan.Parse(confMensageria.HoraEnvioInicioTeste.ToString("0:HH:mm:ss")); var horarioFim = TimeSpan.Parse(confMensageria.HoraEnvioFimTeste.ToString("0:HH:mm:ss")); // Verificar restricao temporaria - Faixa de horario if (horarioAtual <horarioInicio | horarioAtual> horarioFim) { DateTime dhHoraLiberadoEnvio = DateTime.MinValue; //Se horário atual for maior que horário fim, significa que ainda está no mesmo dia. Soma 1 no dia e determina horário de envio if (horarioAtual > horarioFim) { dhHoraLiberadoEnvio = DateTime.Now.AddDays(1); dhHoraLiberadoEnvio = new DateTime(dhHoraLiberadoEnvio.Year, dhHoraLiberadoEnvio.Month, dhHoraLiberadoEnvio.Day, confMensageria.HoraEnvioInicioTeste.Hour, confMensageria.HoraEnvioInicioTeste.Minute, 0); } // Se horário atual for menor que horário inicial, significa que esta no dia. Apenas determina horário de envio else if (horarioAtual < horarioInicio) { dhHoraLiberadoEnvio = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, confMensageria.HoraEnvioInicioTeste.Hour, confMensageria.HoraEnvioInicioTeste.Minute, 0); } listaRestricoesTeste = listaRestricoesTeste + "Mensagem somente poderá ser enviada às " + dhHoraLiberadoEnvio.ToString("dd/MM/yyyy HH:mm:ss") + "."; } } catch (Exception ex) { CaseBusiness.Framework.Log.Log.Logar(CaseBusiness.Framework.TipoLog.Erro, ex.Message, ex.StackTrace, "", "", DateTime.Now, CaseBusiness.Framework.Configuracao.Configuracao.Aplicacao, CaseBusiness.Framework.Tela.Nenhum, 0); listaRestricoesTeste = ex.Message; throw; } return(listaRestricoesTeste); }
public String RestricaoCliente(Int32 codigoOrganizacao, Int32 idCanal, Int32 codigoConfiguracaoMensagem, String cpfCnpj, String destinatario, String numeroCartao, String segmento, Int64 transacao, Int32 idGrupoTeste) { String listaRestricoesCliente = ""; try { // Busca dados da MensagemConfiguraca CaseBusiness.CC.Mensageria.ConfiguracaoComunicacao configuracaoMensagem = new CaseBusiness.CC.Mensageria.ConfiguracaoComunicacao(codigoConfiguracaoMensagem, codigoOrganizacao, UsuarioManutencao.ID); // Busca se está na lista de restrições listaRestricoesCliente = new CaseBusiness.CC.Mensageria.Restricao(base.UsuarioManutencao.ID).RestricaoDefinitiva(cpfCnpj, destinatario); // Carrega dados da configuração de Envio de Mensagem de um tipo de Canal de uma Organização. CaseBusiness.CC.Mensageria.Configuracao confMensageria = new CaseBusiness.CC.Mensageria.Configuracao(codigoOrganizacao, idCanal, UsuarioManutencao.ID); // Estourou qtde max msg trs nas ultimas 24h Int32 qtdeMsgTrs = new CaseBusiness.CC.Mensageria.MensagemSMSLog(base.UsuarioManutencao.ID).QuantidadeMensagensEnviada("CLIEN", cpfCnpj, "TRANSACAO", idGrupoTeste, 1440); if (qtdeMsgTrs >= confMensageria.QuantidadeMaximaMensagemEnviadaTransacaoCliente) { listaRestricoesCliente = listaRestricoesCliente + "Excedido quantidade máxima de " + confMensageria.QuantidadeMaximaMensagemEnviadaTransacaoCliente.ToString() + " mensagem(ns) enviado(s) por transação no período de 24 horas para o cliente. "; } var horarioAtual = TimeSpan.Parse(DateTime.Now.ToString("0:HH:mm:ss")); var horarioInicio = TimeSpan.Parse(confMensageria.HoraEnvioInicioCliente.ToString("0:HH:mm:ss")); var horarioFim = TimeSpan.Parse(confMensageria.HoraEnvioFimCliente.ToString("0:HH:mm:ss")); // Verificar restricao temporaria - Faixa de horario if (horarioAtual <horarioInicio | horarioAtual> horarioFim) { DateTime dhHoraLiberadoEnvio = DateTime.MinValue; // Se horário atual for maior que horário fim, significa que ainda está no mesmo dia. Soma 1 no dia e determina horário de envio if (horarioAtual > horarioFim) { dhHoraLiberadoEnvio = DateTime.Now.AddDays(1); dhHoraLiberadoEnvio = new DateTime(dhHoraLiberadoEnvio.Year, dhHoraLiberadoEnvio.Month, dhHoraLiberadoEnvio.Day, confMensageria.HoraEnvioInicioCliente.Hour, confMensageria.HoraEnvioInicioCliente.Minute, 0); } // Se horário atual for menor que horário inicial, significa que esta no dia. Apenas determina horário de envio else if (horarioAtual < horarioInicio) { dhHoraLiberadoEnvio = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, confMensageria.HoraEnvioInicioCliente.Hour, confMensageria.HoraEnvioInicioCliente.Minute, 0); } listaRestricoesCliente = listaRestricoesCliente + "Mensagem somente poderá ser enviada às " + dhHoraLiberadoEnvio.ToString("dd/MM/yyyy HH:mm:ss") + "."; } } catch (Exception ex) { CaseBusiness.Framework.Log.Log.Logar(CaseBusiness.Framework.TipoLog.Erro, ex.Message, ex.StackTrace, "", "", DateTime.Now, CaseBusiness.Framework.Configuracao.Configuracao.Aplicacao, CaseBusiness.Framework.Tela.Nenhum, 0); listaRestricoesCliente = ex.Message; throw; } return(listaRestricoesCliente); }