コード例 #1
0
        public FiltroController()
        {
            var unitOfWork         = new UnitOfWork(new Cred9DbContext());
            var unitOfWorkPanorama = new RepositorioPanorama.UnitOfWork(_connectionString, new LoggerConsole());

            _filtroNegocio      = new FiltroNegocio(unitOfWork);
            _bancoNegocio       = new FiltroBancoNegocio(unitOfWork);
            _especieNegocio     = new FiltroEspecieNegocio(unitOfWork);
            _agrupamentoNegocio = new AgrupamentoNegocio(_connectionString, new LoggerConsole());
        }
コード例 #2
0
        static void Main(string[] args)
        {
            string       connectionString = ConfigurationManager.ConnectionStrings["DbPanorama"].ConnectionString;
            const string nomeRobo         = "FILTRO_AGRUPAMENTO";
            var          logger           = new Logger("LOGS\\Log - " + DateTime.Now.ToString() + ".txt");

            try
            {
                var filtroSelecionado = SelecionaFiltroPeloUsuario();

                logger.EscreveLinha("==================================================================");
                logger.EscreveLinha("INÍCIO DE EXECUÇÃO");
                logger.EscreveLinha("==================================================================");
                logger.PulaLinhas(1);
                logger.EscreveLinha("=== ABRINDO CONEXÃO COM BANCO DE DADOS...");

                ClienteNegocio     cliBus = new ClienteNegocio(connectionString, logger);
                AgrupamentoNegocio agpBus = new AgrupamentoNegocio(connectionString, logger);

                logger.EscreveLinha("OK - CONEXÃO ESTABELECIDA");
                logger.PulaLinhas(1);

                logger.EscreveLinha("=== LENDO PARAMETROS DE FILTRO...");
                var parametros = RecebeParametros(filtroSelecionado);
                logger.EscreveLinha("OK - PARAMETROS RECEBIDOS");
                logger.PulaLinhas(1);

                logger.EscreveLinha("=== RECUPERANDO CLIENTES DO AGRUPAMENTO...");
                var clientes = cliBus.ListarClientesDeAgrupamento(parametros.Filtro.CodAgrupamento);
                logger.EscreveLinha("OK - TOTAL DE CLIENTES DO AGRUPAMENTO '" + parametros.Filtro.CodAgrupamento + "': " + clientes.Count);
                logger.PulaLinhas(1);

                if (clientes.Count > 0)
                {
                    var data = DateTime.Now.ToString();

                    var agp = new Agrupamento()
                    {
                        Descricao = nomeRobo + " (Dentro do perfil) " + "" + data,
                        Cor       = "cde9e0"
                    };

                    var agpFora = new Agrupamento()
                    {
                        Descricao = nomeRobo + " (Fora do perfil) " + "" + data,
                        Cor       = "cde9e0"
                    };

                    logger.PulaLinhas(1);
                    logger.EscreveLinha("=== RECUPERANDO BENEFICIOS DE CADA CLIENTE...");
                    cliBus.ConsultaBeneficiosClientes(clientes);
                    logger.EscreveLinha("OK - BENEFICIOS DE CLIENTES RECUPERADO");
                    logger.PulaLinhas(1);

                    logger.EscreveLinha("=== RECUPERANDO EMPRESTIMOS DE CADA CLIENTE...");
                    cliBus.ConsultaEmprestimosClientes(clientes);
                    logger.EscreveLinha("OK - EMPRESTIMOS DE CLIENTES RECUPERADO");
                    logger.PulaLinhas(1);

                    logger.EscreveLinha("=== FAZENDO CALCULOS DE CADA CLIENTE...");
                    cliBus.LimparClientesForaDoPerfil(clientes, parametros.Filtro);
                    logger.EscreveLinha("OK - TOTAL DE CLIENTES DENTRO DO PERFIL COM CALCULOS REALIZADOS: " + clientes.Count);
                    logger.PulaLinhas(1);

                    logger.EscreveLinha("=== CRIANDO AGRUPAMENTOS...");
                    agpBus.AdicionarAgrupamento(agp);
                    logger.EscreveLinha("OK - AGRUPAMENTO CRIADO: " + agp.Descricao + " - Código " + agp.Id);
                    agpBus.AdicionarAgrupamento(agpFora);
                    logger.EscreveLinha("OK - AGRUPAMENTO CRIADO: " + agpFora.Descricao + " - Código " + agpFora.Id);
                    logger.PulaLinhas(1);

                    logger.EscreveLinha("ADICIONANDO CLIENTES NOS AGRUPAMENTOS...");
                    logger.EscreveLinha("==================================================================");
                    int qtdDentroPerfil = clientes.Where(x => x.Ativado == true).Count();
                    int qtdForaPerfil   = clientes.Where(x => x.Ativado == false).Count();

                    if (agp.Id > 0)
                    {
                        int porcentAnterior = 0;
                        for (int i = 0; i < clientes.Count; i++)
                        {
                            var c = clientes[i];

                            float porcentagem = i / (float)clientes.Count;
                            porcentagem = (porcentagem * 100);

                            if ((int)porcentagem > porcentAnterior)
                            {
                                porcentAnterior = (int)porcentagem;
                                logger.EscreveLinha(porcentAnterior + " % dos clientes adicionados de " + clientes.Count);
                            }

                            if (c.Ativado)
                            {
                                //Cliente valido que não precisa atualizar telefone
                                agpBus.AdicionarClienteNoAgrupamento(agp.Id, c.Id);
                            }
                            else
                            {
                                //Cliente fora do perfil do filtro
                                agpBus.AdicionarClienteNoAgrupamento(agpFora.Id, c.Id);
                            }
                        }
                    }

                    logger.EscreveLinha("==================================================================");
                    logger.EscreveLinha("OK - " + qtdDentroPerfil + " CLIENTES DENTRO DO PERFIL");
                    logger.EscreveLinha("OK - " + qtdForaPerfil + " CLIENTES FORA DO PERFIL");
                }
            }
            catch (Exception ex)
            {
                logger.EscreveLinha("OCORREU UM ERRO AO PROCESSAR...");
                logger.PulaLinhas(2);
                logger.EscreveLinha("MENSAGEM DE ERRO: ");
                logger.EscreveLinha(ex.Message);
            }

            logger.PulaLinhas(1);
            logger.EscreveLinha("==================================================================");
            logger.EscreveLinha("PROCESSAMENTO FINALIZADO");
            logger.EscreveLinha("==================================================================");
            logger.PulaLinhas(1);
            logger.Fechar();
        }