public IActionResult Order(int Torneo, string campobusqueda) { ListaParticipacionDto datosDeLaVista = new ListaParticipacionDto() { torneo = _context.Torneo.Where(t => t.Id == Torneo).FirstOrDefault(), participantes = _context.Participacion.Include(p => p.ArqueroNavigation).ThenInclude(a => a.ClubNavigation) .Include(p => p.CategoriaNavigation) .Include(p => p.DianaNavigation) .Where(p => p.Torneo == Torneo) .OrderBy(p => p.Puesto) .GroupBy(p => p.Categoria) .SelectMany(p => p) .Select(p => new ParticipacionDto() { Id = p.Id, arquero = p.ArqueroNavigation, categoria = p.CategoriaNavigation, diana = p.DianaNavigation, mosca = p.Mosca, primerTreinta = p.PrimerTreinta, puesto = p.Puesto, puntaje = p.Puntaje }) .ToList() }; return(View(datosDeLaVista)); }
public IActionResult Participacion(int Torneo) { List <ParticipacionDto> participantesVista = new List <ParticipacionDto>(); Dictionary <int, List <ParticipacionDto> > participanteByCatId = new Dictionary <int, List <ParticipacionDto> >(); _context.Participacion.Include(p => p.ArqueroNavigation).ThenInclude(a => a.ClubNavigation) .Include(p => p.CategoriaNavigation) .Include(p => p.DianaNavigation) .Where(p => p.Torneo == Torneo) .ToList() .ForEach(p => { var part = new ParticipacionDto() { arquero = p.ArqueroNavigation, categoria = p.CategoriaNavigation, diana = p.DianaNavigation, Id = p.Id, mosca = p.Mosca, primerTreinta = p.PrimerTreinta, puesto = p.Puesto, puntaje = p.Puntaje }; if (!participanteByCatId.ContainsKey(part.categoria.Id)) { participanteByCatId.Add(p.Categoria, new List <ParticipacionDto>()); } participanteByCatId[p.Categoria].Add(part); }); foreach (int key in participanteByCatId.Keys) { participantesVista.AddRange(participanteByCatId[key].OrderBy(p => p.puesto)); } ListaParticipacionDto datosDeLaVista = new ListaParticipacionDto() { torneo = _context.Torneo.Where(t => t.Id == Torneo).FirstOrDefault(), participantes = participantesVista }; return(View(datosDeLaVista)); }