Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }