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