public ActionResult Odaberi(TakmicenjeIndexVM podaci) { TakmicenjeOdaberiVM model = new TakmicenjeOdaberiVM { Razred = podaci.Razred, SkolaId = (int)podaci.SkolaId, Skola = _context.Skola.Find(podaci.SkolaId).Naziv }; if (podaci.Razred == null) { model.rows = _context.Takmicenje.Where(t => t.SkolaID == podaci.SkolaId).Select(t => new TakmicenjeOdaberiVM.Row { TakmicenjeId = t.Id, Razred = t.Predmet.Razred, Predmet = t.Predmet.Naziv, Datum = t.Datum, BrojUcesnikaKojiNisuPristupili = _context.TakmicenjeUcesnik.Where(tu => tu.TakmicenjeId == t.Id && tu.Pristupio == false).Count(), NajboljiUcesnik = "??" }).ToList(); } else { model.rows = _context.Takmicenje.Where(t => t.Predmet.Razred == podaci.Razred && t.SkolaID == podaci.SkolaId).Select(t => new TakmicenjeOdaberiVM.Row { TakmicenjeId = t.Id, Razred = t.Predmet.Razred, Predmet = t.Predmet.Naziv, Datum = t.Datum, BrojUcesnikaKojiNisuPristupili = _context.TakmicenjeUcesnik.Where(tu => tu.TakmicenjeId == t.Id && tu.Pristupio == false).Count(), NajboljiUcesnikOdjeljenjeStavka = _context.TakmicenjeUcesnik.Where(tu => tu.TakmicenjeId == t.Id).OrderByDescending(tu => tu.Rezultat).First().OdjeljenjeStavkaId }).ToList(); } for (int i = 0; i < model.rows.Count; i++) { if (model.rows[i].NajboljiUcesnikOdjeljenjeStavka != 0) { var OS = _context.OdjeljenjeStavka.Where(a => a.Id == model.rows[i].NajboljiUcesnikOdjeljenjeStavka) .Include(a => a.Odjeljenje.Skola) .Include(a => a.Odjeljenje) .Include(a => a.Ucenik) .Single(); model.rows[i].NajboljiUcesnik = OS.Odjeljenje.Skola.Naziv + " | " + OS.Odjeljenje.Oznaka + " | " + OS.Ucenik.ImePrezime; } } return(View(model)); }
public IActionResult Odaberi(TakmicenjeIndexVM model) { var skola = ctx.Skola.Find(model.SkolaId); var modelOdaberi = new TakmicenjeOdaberiVM { SkolaId = skola.Id, Skola = skola.Naziv, Razred = model.Razred, Rows = ctx.Takmicenje .Where ( i => i.Skola.Id == model.SkolaId ) .Select ( i => new TakmicenjeOdaberiVM.Row { TakmicenjeId = i.Id, PredmetId = i.Predmet.Id, Predmet = i.Predmet.Naziv, Razred = i.Razred, Datum = i.Datum.ToString("dd/MM/yyyy"), BrojUcesnikaKojiNisuPristupili = ctx.TakmicenjeUcesnik .Where ( t => t.TakmicenjeId == i.Id && t.IsPristupio == false ) .Count() } ) .ToList() }; if (model.Razred != null) { modelOdaberi.Rows = modelOdaberi.Rows.Where(i => i.Razred.ToString() == model.Razred).ToList(); } foreach (var Row in modelOdaberi.Rows) { var Najbolji = ctx.TakmicenjeUcesnik .Include(i => i.OdjeljenjeStavka.Ucenik) .Include(i => i.OdjeljenjeStavka.Odjeljenje) .Include(i => i.OdjeljenjeStavka.Odjeljenje.Skola) .OrderByDescending(i => i.Bodovi) .Where(i => i.TakmicenjeId == Row.TakmicenjeId && i.IsPristupio == true) .FirstOrDefault(); if (Najbolji != null) { Row.NajboljiUcesnikId = Najbolji.OdjeljenjeStavka.Ucenik.Id; Row.NajboljiUcesnikImePrezime = Najbolji.OdjeljenjeStavka.Ucenik.ImePrezime; Row.NajboljiUcesnikOdjeljenje = Najbolji.OdjeljenjeStavka.Odjeljenje.Oznaka; Row.NajboljiUcesnikSkola = Najbolji.OdjeljenjeStavka.Odjeljenje.Skola.Naziv; } } return(View(modelOdaberi)); }