Esempio n. 1
0
 public Top10View()
 {
     InitializeComponent();
     vm             = new Top10ViewModel();
     Title          = "Top 10 podcasts";
     vm.Navigation  = Navigation;
     BindingContext = vm;
 }
        public async Task <IActionResult> VistaCliente()
        {
            var cliente   = bd.Utilizadores.SingleOrDefault(c => c.Email == User.Identity.Name);
            int clienteId = cliente.UtilizadorId;

            ViewData["ClienteId"] = cliente.UtilizadorId;


            int distritoDoCliente = cliente.DistritosId;

            List <Utilizadores> clientesDoDistrito = await bd.Utilizadores
                                                     .Where(p => p.Role == "Cliente" && p.DistritosId == distritoDoCliente)
                                                     .ToListAsync();

            List <LucroClienteOperador> clientes = new List <LucroClienteOperador>();
            decimal lucro = 0;

            foreach (var item in clientesDoDistrito)
            {
                foreach (var contrato in bd.Contratos)
                {
                    if (contrato.UtilizadorId == item.UtilizadorId)
                    {
                        lucro += contrato.PrecoFinal;
                    }
                }
                var distrito = await bd.Distritos
                               .FirstOrDefaultAsync(m => m.DistritosId == item.DistritosId);

                clientes.Add(new LucroClienteOperador()
                {
                    UtilizadorId = item.UtilizadorId,
                    DistritosId  = item.DistritosId,
                    Lucro        = lucro,
                    ClienteNome  = item.Nome,
                    DistritoNome = distrito.Nome
                });
                lucro = 0;
            }

            List <LucroClienteOperador> top10ComOCliente = clientes
                                                           .OrderByDescending(p => p.Lucro)
                                                           .Take(10)
                                                           .ToList();

            var distritonome = await bd.Distritos
                               .FirstOrDefaultAsync(m => m.DistritosId == cliente.DistritosId);

            ViewData["Distrito"] = distritonome.Nome;

            int posicaoCliente = 0;

            foreach (var item in top10ComOCliente)
            {
                if (item.UtilizadorId == cliente.UtilizadorId)
                {
                    posicaoCliente = top10ComOCliente.IndexOf(item) + 1;
                }
            }

            ViewData["PosicaoCliente"] = posicaoCliente;


            Top10ViewModel top10clientes = new Top10ViewModel
            {
                vistaCliente = top10ComOCliente
            };

            return(View(top10clientes));
        }
Esempio n. 3
0
        public IActionResult Top10Operador(int distritopesquisar = 0)
        {
            Role roleoperador = _context.Role.FirstOrDefault(r => r.Nome == "Operador");

            List <TotalClienteOperador> operadores = new List <TotalClienteOperador>();
            decimal total = 0;

            foreach (var operador in _context.Utilizador)
            {
                if (operador.IdRoleNavigation == roleoperador)
                {
                    foreach (var contrato in _context.Contrato)
                    {
                        if (contrato.IdOperador == operador.IdUtilizador)
                        {
                            total += contrato.PrecoTotal;
                        }
                    }
                    operadores.Add(new TotalClienteOperador()
                    {
                        NomeUtilizador = operador.Nome, DistritosId = operador.IdDistrito, Total = total
                    });
                    total = 0;
                }
            }

            ViewData["IdDistrito"] = new SelectList(_context.Distrito, "IdDistrito", "Nome");


            if (distritopesquisar == 0)
            {
                List <TotalClienteOperador> totoperador = operadores
                                                          .Where(p => p.DistritosId == 0)
                                                          .OrderByDescending(p => p.Total)
                                                          .Take(10)
                                                          .ToList();


                Top10ViewModel modelo1 = new Top10ViewModel
                {
                    Totaloperador     = totoperador,
                    DistritoPesquisar = distritopesquisar
                };



                return(View(modelo1));
            }



            List <TotalClienteOperador> totaloperador = operadores
                                                        .Where(p => p.DistritosId == distritopesquisar && p.Total > 0)
                                                        .OrderByDescending(p => p.Total)
                                                        .Take(10)
                                                        .ToList();

            Top10ViewModel top10operadores = new Top10ViewModel
            {
                Totaloperador     = totaloperador,
                DistritoPesquisar = distritopesquisar
            };

            return(View(top10operadores));



            //List<decimal, UP_Mobile.Models.Utilizador> contratos = ;
            //System.Collections.Generic.List <<> f_AnonymousType11<decimal, UP_Mobile.Models.Utilizador>>;
            //List<Tuple<T1, T2>>
            //dynamic contratos ...
            //var model = Tuple.Create(
            //var tuple2 = new Tuple<string, double>(

            //dynamic contratos = new System.Dynamic.ExpandoObject();

            //contratos = await _context.Contrato
            //.GroupBy(c => c.IdOperador)
            //.Select(c => new {
            //    total = c.Sum(x => x.PrecoTotal),
            //    operador = _context.Utilizador.SingleOrDefault(u => u.IdUtilizador == c.Key)
            //})

            ////.OrderByDescending( c => c.total)
            //.Take(3)
            //.ToListAsync();
            //return View(contratos);
        }
        public async Task <IActionResult> Top10Clientes()
        {
            List <Utilizadores> clientesAntigos = await bd.Utilizadores
                                                  .Where(p => p.Role == "Cliente")
                                                  .OrderBy(p => p.DataAtivacao)
                                                  .Take(10)
                                                  .ToListAsync();

            List <LucroClienteOperador> clientes = new List <LucroClienteOperador>();
            decimal lucro = 0;

            foreach (var cliente in bd.Utilizadores)
            {
                if (cliente.Role == "Cliente")
                {
                    foreach (var contrato in bd.Contratos)
                    {
                        if (contrato.UtilizadorId == cliente.UtilizadorId)
                        {
                            lucro += contrato.PrecoFinal;
                        }
                    }
                    var distrito = await bd.Distritos
                                   .FirstOrDefaultAsync(m => m.DistritosId == cliente.DistritosId);

                    clientes.Add(new LucroClienteOperador()
                    {
                        UtilizadorId = cliente.UtilizadorId, DistritosId = cliente.DistritosId,
                        Lucro        = lucro, ClienteNome = cliente.Nome, DistritoNome = distrito.Nome
                    });
                    lucro = 0;
                }
            }

            var nomeDistrito1 = await bd.Distritos
                                .FirstOrDefaultAsync(m => m.Nome == "Aveiro");

            var nomeDistrito2 = await bd.Distritos
                                .FirstOrDefaultAsync(m => m.Nome == "Beja");

            var nomeDistrito3 = await bd.Distritos
                                .FirstOrDefaultAsync(m => m.Nome == "Braga");

            var nomeDistrito4 = await bd.Distritos
                                .FirstOrDefaultAsync(m => m.Nome == "Bragança");

            var nomeDistrito5 = await bd.Distritos
                                .FirstOrDefaultAsync(m => m.Nome == "Castelo Branco");

            var nomeDistrito6 = await bd.Distritos
                                .FirstOrDefaultAsync(m => m.Nome == "Coimbra");

            var nomeDistrito7 = await bd.Distritos
                                .FirstOrDefaultAsync(m => m.Nome == "Évora");

            var nomeDistrito8 = await bd.Distritos
                                .FirstOrDefaultAsync(m => m.Nome == "Faro");

            var nomeDistrito9 = await bd.Distritos
                                .FirstOrDefaultAsync(m => m.Nome == "Guarda");

            var nomeDistrito10 = await bd.Distritos
                                 .FirstOrDefaultAsync(m => m.Nome == "Leiria");

            var nomeDistrito11 = await bd.Distritos
                                 .FirstOrDefaultAsync(m => m.Nome == "Lisboa");

            var nomeDistrito12 = await bd.Distritos
                                 .FirstOrDefaultAsync(m => m.Nome == "Portalegre");

            var nomeDistrito13 = await bd.Distritos
                                 .FirstOrDefaultAsync(m => m.Nome == "Porto");

            var nomeDistrito14 = await bd.Distritos
                                 .FirstOrDefaultAsync(m => m.Nome == "Santarém");

            var nomeDistrito15 = await bd.Distritos
                                 .FirstOrDefaultAsync(m => m.Nome == "Setúbal");

            var nomeDistrito16 = await bd.Distritos
                                 .FirstOrDefaultAsync(m => m.Nome == "Viana do Castelo");

            var nomeDistrito17 = await bd.Distritos
                                 .FirstOrDefaultAsync(m => m.Nome == "Vila Real");

            var nomeDistrito18 = await bd.Distritos
                                 .FirstOrDefaultAsync(m => m.Nome == "Viseu");

            var nomeDistrito19 = await bd.Distritos
                                 .FirstOrDefaultAsync(m => m.Nome == "Açores");

            var nomeDistrito20 = await bd.Distritos
                                 .FirstOrDefaultAsync(m => m.Nome == "Madeira");

            ViewData["Aveiro"]        = nomeDistrito1.Nome;
            ViewData["Beja"]          = nomeDistrito2.Nome;
            ViewData["Braga"]         = nomeDistrito3.Nome;
            ViewData["Braganca"]      = nomeDistrito4.Nome;
            ViewData["CasteloBranco"] = nomeDistrito5.Nome;
            ViewData["Coimbra"]       = nomeDistrito6.Nome;
            ViewData["Evora"]         = nomeDistrito7.Nome;
            ViewData["Faro"]          = nomeDistrito8.Nome;
            ViewData["Guarda"]        = nomeDistrito9.Nome;
            ViewData["Leiria"]        = nomeDistrito10.Nome;
            ViewData["Lisboa"]        = nomeDistrito11.Nome;
            ViewData["Portalegre"]    = nomeDistrito12.Nome;
            ViewData["Porto"]         = nomeDistrito13.Nome;
            ViewData["Santarem"]      = nomeDistrito14.Nome;
            ViewData["Setubal"]       = nomeDistrito15.Nome;
            ViewData["Viana"]         = nomeDistrito16.Nome;
            ViewData["VilaReal"]      = nomeDistrito17.Nome;
            ViewData["Viseu"]         = nomeDistrito18.Nome;
            ViewData["Acores"]        = nomeDistrito19.Nome;
            ViewData["Madeira"]       = nomeDistrito20.Nome;


            List <LucroClienteOperador> clientesAveiro = clientes
                                                         .Where(p => p.DistritoNome == "Aveiro")
                                                         .OrderByDescending(p => p.Lucro)
                                                         .Take(10)
                                                         .ToList();

            List <LucroClienteOperador> clientesBeja = clientes
                                                       .Where(p => p.DistritoNome == "Beja")
                                                       .OrderByDescending(p => p.Lucro)
                                                       .Take(10)
                                                       .ToList();


            List <LucroClienteOperador> clientesBraga = clientes
                                                        .Where(p => p.DistritoNome == "Braga")
                                                        .OrderByDescending(p => p.Lucro)
                                                        .Take(10)
                                                        .ToList();

            List <LucroClienteOperador> clientesBraganca = clientes
                                                           .Where(p => p.DistritoNome == "Bragança")
                                                           .OrderByDescending(p => p.Lucro)
                                                           .Take(10)
                                                           .ToList();

            List <LucroClienteOperador> clientesCasteloBranco = clientes
                                                                .Where(p => p.DistritoNome == "Castelo Branco")
                                                                .OrderByDescending(p => p.Lucro)
                                                                .Take(10)
                                                                .ToList();


            List <LucroClienteOperador> clientesCoimbra = clientes
                                                          .Where(p => p.DistritoNome == "Coimbra")
                                                          .OrderByDescending(p => p.Lucro)
                                                          .Take(10)
                                                          .ToList();

            List <LucroClienteOperador> clientesEvora = clientes
                                                        .Where(p => p.DistritoNome == "Évora")
                                                        .OrderByDescending(p => p.Lucro)
                                                        .Take(10)
                                                        .ToList();


            List <LucroClienteOperador> clientesFaro = clientes
                                                       .Where(p => p.DistritoNome == "Faro")
                                                       .OrderByDescending(p => p.Lucro)
                                                       .Take(10)
                                                       .ToList();


            List <LucroClienteOperador> clientesGuarda = clientes
                                                         .Where(p => p.DistritoNome == "Guarda")
                                                         .OrderByDescending(p => p.Lucro)
                                                         .Take(10)
                                                         .ToList();

            List <LucroClienteOperador> clientesLeiria = clientes
                                                         .Where(p => p.DistritoNome == "Leiria")
                                                         .OrderByDescending(p => p.Lucro)
                                                         .Take(10)
                                                         .ToList();

            List <LucroClienteOperador> clientesLisboa = clientes
                                                         .Where(p => p.DistritoNome == "Lisboa")
                                                         .OrderByDescending(p => p.Lucro)
                                                         .Take(10)
                                                         .ToList();

            List <LucroClienteOperador> clientesPortalegre = clientes
                                                             .Where(p => p.DistritoNome == "Portalegre")
                                                             .OrderByDescending(p => p.Lucro)
                                                             .Take(10)
                                                             .ToList();


            List <LucroClienteOperador> clientesPorto = clientes
                                                        .Where(p => p.DistritoNome == "Porto")
                                                        .OrderByDescending(p => p.Lucro)
                                                        .Take(10)
                                                        .ToList();

            List <LucroClienteOperador> clientesSantarem = clientes
                                                           .Where(p => p.DistritoNome == "Santarém")
                                                           .OrderByDescending(p => p.Lucro)
                                                           .Take(10)
                                                           .ToList();


            List <LucroClienteOperador> clientesSetubal = clientes
                                                          .Where(p => p.DistritoNome == "Setúbal")
                                                          .OrderByDescending(p => p.Lucro)
                                                          .Take(10)
                                                          .ToList();

            List <LucroClienteOperador> clientesVianadoCastelo = clientes
                                                                 .Where(p => p.DistritoNome == "Viana do Castelo")
                                                                 .OrderByDescending(p => p.Lucro)
                                                                 .Take(10)
                                                                 .ToList();


            List <LucroClienteOperador> clientesVilaReal = clientes
                                                           .Where(p => p.DistritoNome == "Vila Real")
                                                           .OrderByDescending(p => p.Lucro)
                                                           .Take(10)
                                                           .ToList();


            List <LucroClienteOperador> clientesViseu = clientes
                                                        .Where(p => p.DistritoNome == "Viseu")
                                                        .OrderByDescending(p => p.Lucro)
                                                        .Take(10)
                                                        .ToList();

            List <LucroClienteOperador> clientesAcores = clientes
                                                         .Where(p => p.DistritoNome == "Açores")
                                                         .OrderByDescending(p => p.Lucro)
                                                         .Take(10)
                                                         .ToList();


            List <LucroClienteOperador> clientesMadeira = clientes
                                                          .Where(p => p.DistritoNome == "Madeira")
                                                          .OrderByDescending(p => p.Lucro)
                                                          .Take(10)
                                                          .ToList();

            Top10ViewModel top10clientes = new Top10ViewModel
            {
                ClientesAntigos        = clientesAntigos,
                clientesAveiro         = clientesAveiro,
                clientesBeja           = clientesBeja,
                clientesBraga          = clientesBraga,
                clientesBraganca       = clientesBraganca,
                clientesCasteloBranco  = clientesCasteloBranco,
                clientesCoimbra        = clientesCoimbra,
                clientesEvora          = clientesEvora,
                clientesFaro           = clientesFaro,
                clientesGuarda         = clientesGuarda,
                clientesLeiria         = clientesLeiria,
                clientesLisboa         = clientesLisboa,
                clientesPortalegre     = clientesPortalegre,
                clientesPorto          = clientesPorto,
                clientesSantarem       = clientesSantarem,
                clientesSetubal        = clientesSetubal,
                clientesVianadoCastelo = clientesVianadoCastelo,
                clientesVilaReal       = clientesVilaReal,
                clientesViseu          = clientesViseu,
                clientesAcores         = clientesAcores,
                clientesMadeira        = clientesMadeira,
            };

            return(View(top10clientes));
        }
Esempio n. 5
0
        public IActionResult Top10Cliente(int distritopesquisar = 0)
        {
            Role rolecliente = _context.Role.FirstOrDefault(r => r.Nome == "Cliente");

            List <TotalClienteOperador> clientes = new List <TotalClienteOperador>();
            decimal total = 0;

            foreach (var cliente in _context.Utilizador)
            {
                if (cliente.IdRoleNavigation == rolecliente)
                {
                    foreach (var contrato in _context.Contrato)
                    {
                        if (contrato.IdCliente == cliente.IdUtilizador)
                        {
                            total += contrato.PrecoTotal;
                        }
                    }
                    clientes.Add(new TotalClienteOperador()
                    {
                        NomeUtilizador = cliente.Nome, DistritosId = cliente.IdDistrito, Total = total
                    });
                    total = 0;
                }
            }

            ViewData["IdDistrito"] = new SelectList(_context.Distrito, "IdDistrito", "Nome");


            if (distritopesquisar == 0)
            {
                List <TotalClienteOperador> totcliente = clientes
                                                         .Where(p => p.DistritosId == 0)
                                                         .OrderByDescending(p => p.Total)
                                                         .Take(10)
                                                         .ToList();



                Top10ViewModel modelo1 = new Top10ViewModel
                {
                    Totaloperador     = totcliente,
                    DistritoPesquisar = distritopesquisar
                };


                return(View(modelo1));
            }



            List <TotalClienteOperador> totalcliente = clientes
                                                       .Where(p => p.DistritosId == distritopesquisar && p.Total > 0)
                                                       .OrderByDescending(p => p.Total)
                                                       .Take(10)
                                                       .ToList();

            Top10ViewModel top10clientes = new Top10ViewModel
            {
                Totaloperador     = totalcliente,
                DistritoPesquisar = distritopesquisar
            };

            return(View(top10clientes));
        }