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));
        }
예제 #2
0
        // 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));
        }