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)); }
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)); }
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)); }