public IActionResult Detalji(int SkolaID, int Razred) { TakmicenjeDetaljiVM model = _db.Skola.Where(x => x.Id == SkolaID).Select(x => new TakmicenjeDetaljiVM() { Razred = Razred, SkolaNaziv = x.Naziv, SkolaID = x.Id }).FirstOrDefault(); if (Razred == 0) { model.Takmicenja = _db.Takmicenje.Where(x => x.SkolaID == SkolaID).Select(x => new TakmicenjeDetaljiVM.Row() { Datum = x.Datum.ToString("dd.MM.yyyy"), Razred = x.Razred, BrojUcesnikaKojiNisuPristupili = x.Ucesnici.Where(y => y.Pristupio == false).Count(), /* iz liste Ucesnici uzimamo Max vrijednost za bodove te provjeravamo koji ucesnik ima taj broj bodova i njega uzimamo za najboljek ucesnika*/ //Skola = x.Ucesnici.Where(y => y.Bodovi == x.Ucesnici.Max(i => i.Bodovi)).Select(y => y.OdjeljenjeStavka.Odjeljenje.Skola.Naziv).FirstOrDefault(), //Odjeljenje = x.Ucesnici.Where(y => y.Bodovi == x.Ucesnici.Max(i => i.Bodovi)).Select(y => y.OdjeljenjeStavka.Odjeljenje.Oznaka).FirstOrDefault(), //ImePrezime = x.Ucesnici.Where(y => y.Bodovi == x.Ucesnici.Max(i => i.Bodovi)).Select(y => y.OdjeljenjeStavka.Ucenik.ImePrezime).FirstOrDefault(), //Optimizovano: ;D Skola = x.Ucesnici.OrderByDescending(y => y.Bodovi).Select(y => y.OdjeljenjeStavka.Odjeljenje.Skola.Naziv).FirstOrDefault(), Odjeljenje = x.Ucesnici.OrderByDescending(y => y.Bodovi).Select(y => y.OdjeljenjeStavka.Odjeljenje.Oznaka).FirstOrDefault(), ImePrezime = x.Ucesnici.OrderByDescending(y => y.Bodovi).Select(y => y.OdjeljenjeStavka.Ucenik.ImePrezime).FirstOrDefault(), Predmet = x.Predmet.Naziv, TakmicenjeID = x.TakmicenjeID }).ToList(); } else { model.Takmicenja = _db.Takmicenje.Where(x => x.SkolaID == SkolaID && x.Razred == Razred).Select(x => new TakmicenjeDetaljiVM.Row() { Datum = x.Datum.ToString("dd.MM.yyyy"), Razred = x.Razred, BrojUcesnikaKojiNisuPristupili = x.Ucesnici.Where(y => y.Pristupio == false).Count(), /* iz liste Ucesnici uzimamo Max vrijednost za bodove te provjeravamo koji ucesnik ima taj broj bodova i njega uzimamo za najboljek ucesnika*/ //Skola = x.Ucesnici.Where(y => y.Bodovi == x.Ucesnici.Max(i => i.Bodovi)).Select(y => y.OdjeljenjeStavka.Odjeljenje.Skola.Naziv).FirstOrDefault(), //Odjeljenje = x.Ucesnici.Where(y => y.Bodovi == x.Ucesnici.Max(i => i.Bodovi)).Select(y => y.OdjeljenjeStavka.Odjeljenje.Oznaka).FirstOrDefault(), //ImePrezime = x.Ucesnici.Where(y => y.Bodovi == x.Ucesnici.Max(i => i.Bodovi)).Select(y => y.OdjeljenjeStavka.Ucenik.ImePrezime).FirstOrDefault(), //Optimizovano: ;D Skola = x.Ucesnici.OrderByDescending(y => y.Bodovi).Select(y => y.OdjeljenjeStavka.Odjeljenje.Skola.Naziv).FirstOrDefault(), Odjeljenje = x.Ucesnici.OrderByDescending(y => y.Bodovi).Select(y => y.OdjeljenjeStavka.Odjeljenje.Oznaka).FirstOrDefault(), ImePrezime = x.Ucesnici.OrderByDescending(y => y.Bodovi).Select(y => y.OdjeljenjeStavka.Ucenik.ImePrezime).FirstOrDefault(), Predmet = x.Predmet.Naziv, TakmicenjeID = x.TakmicenjeID }).ToList(); } return(View(model)); }
// GET: TakmicenjeController/Details/5 public ActionResult Detalji(int skolaId, int razred) { TakmicenjeDetaljiVM model = _db.Skola.Where(x => x.Id == skolaId).Select(y => new TakmicenjeDetaljiVM() { Razred = razred, SkolaDomacin = y.Naziv, SkolaId = y.Id }).FirstOrDefault(); if (razred == 0) { model.Takmicenja = _db.Takmicenje.Where(x => x.Skola.Id == skolaId).Select(x => new TakmicenjeDetaljiVM.Row() { TakmicenjeId = x.TakmicenjeId, Predmet = x.Predmet.Naziv, Razred = x.Razred, DatumTakmicenja = x.Datum.ToString("dd.MM.yyyy"), BrojNepristupljenih = x.Ucesnici.Where(y => y.Pristupio == false).Count(), //najbolji ucesnik Skola = x.Ucesnici.OrderByDescending(y => y.Bodovi).Select(y => y.OdjeljenjeStavka.Odjeljenje.Skola.Naziv).FirstOrDefault(), Odjeljenje = x.Ucesnici.OrderByDescending(y => y.Bodovi).Select(y => y.OdjeljenjeStavka.Odjeljenje.Oznaka).FirstOrDefault(), ImePrezime = x.Ucesnici.OrderByDescending(y => y.Bodovi).Select(y => y.OdjeljenjeStavka.Ucenik.ImePrezime).FirstOrDefault() }).ToList(); } else { model.Takmicenja = _db.Takmicenje.Where(x => x.Skola.Id == skolaId && x.Razred == razred).Select(x => new TakmicenjeDetaljiVM.Row() { TakmicenjeId = x.TakmicenjeId, Predmet = x.Predmet.Naziv, Razred = x.Razred, DatumTakmicenja = x.Datum.ToString("dd.MM.yyyy"), BrojNepristupljenih = x.Ucesnici.Where(y => y.Pristupio == false).Count(), //najbolji ucesnik Skola = x.Ucesnici.OrderByDescending(y => y.Bodovi).Select(y => y.OdjeljenjeStavka.Odjeljenje.Skola.Naziv).FirstOrDefault(), Odjeljenje = x.Ucesnici.OrderByDescending(y => y.Bodovi).Select(y => y.OdjeljenjeStavka.Odjeljenje.Oznaka).FirstOrDefault(), ImePrezime = x.Ucesnici.OrderByDescending(y => y.Bodovi).Select(y => y.OdjeljenjeStavka.Ucenik.ImePrezime).FirstOrDefault() }).ToList(); } return(View(nameof(Detalji), model)); }