Beispiel #1
0
        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));
        }