Пример #1
0
        public Agregador VisualizarPedido(int Id)
        {
            Agregador agregador = new Agregador();

            agregador.pedido    = _banco.Pedido.Include(a => a.Pessoa).FirstOrDefault();
            agregador.cliente   = _banco.Pessoa.Where(a => a.Id == agregador.pedido.ClienteId).FirstOrDefault();
            agregador.enderecos = _banco.EnderecoEntrega.Where(a => a.Id == agregador.pedido.EnderecoEntregaId).FirstOrDefault();
            agregador.itens     = _banco.PedidoItem.Include(a => a.Produto).Where(a => a.PedidoId == agregador.pedido.Id).ToList();

            return(agregador);
        }
Пример #2
0
        static void Execucao(String arquivoEntrada, String arquivoSaida, int dePara6Total = 0, int agregacaoProvisoria = 0, int dePara6Capital = 0, int agregacaoProvisoriaCapital = 0, int TTE = 0, int TTE_Capital = 0)
        {
            var Agregador   = new Agregador();
            var zonas       = (new ManipuladorCSV()).CarregarArquivo(arquivoEntrada);
            int totalSecoes = zonas.SelectMany(z => z.Locais).SelectMany(l => l.Secoes).Count();

            Console.WriteLine($" Inicialmente total de { totalSecoes}  seções ");
            if (dePara6Capital != 0)
            {
                var zonasInterior = (new Agregador()).Agregar(
                    zonas.Where(zona => !(zonas_selecionadas.Contains(zona.Numero))).Select(z => z).ToList()
                    , dePara6Total,
                    1);
                var zonasCapital = (new Agregador()).Agregar(
                    zonas.Where(zona => zonas_selecionadas.Contains(zona.Numero)).Select(z => z).ToList()
                    , dePara6Capital,
                    1);
                zonas.Clear();
                zonas.AddRange(zonasInterior);
                zonas.AddRange(zonasCapital);
                int totalSecoesPasso1 = zonas.SelectMany(z => z.Locais).SelectMany(l => l.Secoes).Count();
                Console.WriteLine($"De Para 6 com no máximo({dePara6Total}) eleitores no interior e ({dePara6Capital}) na Capital foram reduzidos  para {totalSecoesPasso1} seções");
            }
            else if (dePara6Total > 0)
            {
                zonas = (new Agregador()).Agregar(
                    zonas
                    , dePara6Total,
                    1);
                int totalSecoesPasso1 = zonas.SelectMany(z => z.Locais).SelectMany(l => l.Secoes).Count();
                Console.WriteLine($"De Para 6 com no máximo({dePara6Total}) eleitores foram reduzidos de {totalSecoes} seções para {totalSecoesPasso1} seções");
            }
            if (agregacaoProvisoria != 0 || agregacaoProvisoriaCapital > 0)
            {
                if (agregacaoProvisoriaCapital != 0)
                {
                    var zonasInterior = (new Agregador()).Agregar(
                        zonas.Where(zona => !(zonas_selecionadas.Contains(zona.Numero))).Select(z => z).ToList()
                        , agregacaoProvisoria,
                        2);
                    var zonasCapital = (new Agregador()).Agregar(
                        zonas.Where(zona => zonas_selecionadas.Contains(zona.Numero)).Select(z => z).ToList()
                        , agregacaoProvisoriaCapital,
                        2);
                    zonas.Clear();
                    zonas.AddRange(zonasInterior);
                    zonas.AddRange(zonasCapital);
                    int totalSecoesPasso2 = zonas.SelectMany(z => z.Locais).SelectMany(l => l.Secoes).Count();
                    Console.WriteLine($" e depois agregação provisória com ({agregacaoProvisoria}) eleitores no interior e ({agregacaoProvisoriaCapital}) na capital reduzimos para {totalSecoesPasso2} seções");
                }
                else
                {
                    zonas = (new Agregador()).Agregar(zonas, agregacaoProvisoria, 2);
                    int totalSecoesPasso2 = zonas.SelectMany(z => z.Locais).SelectMany(l => l.Secoes).Count();
                    Console.WriteLine($" e depois agregação provisória com ({agregacaoProvisoria}) eleitores reduzimos para {totalSecoesPasso2} seções");
                }
            }
            int passoAnterior = zonas.SelectMany(z => z.Locais).SelectMany(l => l.Secoes).Count();

            if (TTE > 0 || TTE_Capital > 0)
            {
                if (TTE_Capital > 0)
                {
                    var zonasCapital = Agregador.ZonasDeSecoes(Agregador.TTE(
                                                                   Agregador.SecoesDeZonas(zonas.Where(zona => zonas_selecionadas.Contains(zona.Numero)).Select(z => z).ToList())
                                                                   , TTE_Capital));
                    List <Zona> zonasInterior = null;
                    if (TTE > 0)
                    {
                        zonasInterior = Agregador.ZonasDeSecoes(Agregador.TTE(
                                                                    Agregador.SecoesDeZonas(zonas.Where(zona => !zonas_selecionadas.Contains(zona.Numero)).Select(z => z).ToList())
                                                                    , TTE));
                    }
                    else
                    {
                        zonasInterior = zonas.Where(zona => !(zonas_selecionadas.Contains(zona.Numero))).Select(z => z).ToList();
                    }
                    zonas.Clear();
                    zonas.AddRange(zonasInterior);
                    zonas.AddRange(zonasCapital);
                    int totalSecoesTTE = zonas.SelectMany(z => z.Locais).SelectMany(l => l.Secoes).Count();

                    Console.WriteLine($"TTE com ({TTE}) eleitores e nas selecionadas ({TTE_Capital}) foram reduzidos de {passoAnterior} seções para {totalSecoesTTE} seções");
                }
                else
                {
                    zonas = Agregador.ZonasDeSecoes(Agregador.TTE(
                                                        Agregador.SecoesDeZonas(zonas)
                                                        , TTE));
                    int totalSecoesTTE = zonas.SelectMany(z => z.Locais).SelectMany(l => l.Secoes).Count();
                    Console.WriteLine($"TTE com ({TTE}) eleitores foram reduzidos de {passoAnterior} seções para {totalSecoesTTE} seções");
                }
            }
            Console.WriteLine(" ");


            (new ManipuladorCSV()).GerarArquivo(zonas, arquivoSaida);
        }