public ActionResult Index() { string loggedInUserId = User.Identity.GetUserId(); var model = new KursIndexVM { Kursevi = _ctx.KursDbSet.Where(y => y.Instruktor.Id.Equals(loggedInUserId) && !y.Status.ToString().Equals("ARCHIVED")).Select(x => new KursRow { KursId = x.Id, KursNaziv = x.Naziv, KursOpis = x.Opis, KursDatumKreiranja = x.DatumKreiranja, KursKursNivo = x.Nivo, KursVideoId = x.VideoId, KursThumbImagePutanja = "http://img.youtube.com/vi/" + x.VideoId + "/mqdefault.jpg", KursStatus = x.Status, KursPolazniciCount = _ctx.StudentKursDbSet.Where(y => y.Kurs.Id == x.Id).Count() }).OrderByDescending(orderBy => orderBy.KursDatumKreiranja).ToList(), }; return(View(model)); }
public ActionResult Pretrazi() { Dictionary <string, string> formdata = new Dictionary <string, string>(); foreach (string key in Request.Form.AllKeys) { formdata.Add(key, Request.Form[key]); } string naziv = ""; formdata.TryGetValue("KursPretragaNaziv", out naziv); string opis = ""; formdata.TryGetValue("KursPretragaOpis", out opis); string nivoString = ""; formdata.TryGetValue("KursPretragaKursNivo", out nivoString); int nivoInt = -1; if (nivoString != "") { Int32.TryParse(nivoString, out nivoInt); } string statusString = ""; formdata.TryGetValue("KursPretragaKursStatus", out statusString); int statusInt = -1; if (statusString != "") { Int32.TryParse(statusString, out statusInt); } string datumOd = ""; formdata.TryGetValue("KursPretragaDatumOd", out datumOd); string datumDo = ""; formdata.TryGetValue("KursPretragaDatumDo", out datumDo); string izostaviBezPolaznikaString = ""; formdata.TryGetValue("KursPretragaIzostaviBezPolaznika", out izostaviBezPolaznikaString); // za razliku od query-ja na Index metodu, ovdje nema filtriranja // za kurseve koji imaju status ARCHIVED = 2, iz razloga sto // filter forma ima i dropdown listu sa svim statusima string loggedInUserId = User.Identity.GetUserId(); var query = _ctx.KursDbSet.Where(kurs => kurs.Instruktor.Id.Equals(loggedInUserId)); // polje: naziv naziv = naziv.ToLower(); query = query.Where(kurs => kurs.Naziv.ToLower().Contains(naziv)); // polje: opis opis = opis.ToLower(); query = query.Where(kurs => kurs.Opis.ToLower().Contains(opis)); // polje: nivo if (nivoInt != -1) { query = query.Where(kurs => kurs.Nivo == (KursNivo)nivoInt); } // polje: status if (statusInt != -1) { query = query.Where(kurs => kurs.Status == (KursStatus)statusInt); } DateTime?postedDatumOd = null; if (datumOd != null && datumOd != "") { postedDatumOd = DateTime.Parse(datumOd); query = query.Where(kurs => kurs.DatumKreiranja >= postedDatumOd); } DateTime?postedDatumDo = null; if (datumDo != null && datumDo != "") { postedDatumDo = DateTime.Parse(datumDo); query = query.Where(kurs => kurs.DatumKreiranja <= postedDatumDo); } // polje: [checkbox] Ne prikazuj kurseve bez polaznika? bool propIzostaviBezPolaznika = false; if (izostaviBezPolaznikaString != null && izostaviBezPolaznikaString.Equals("doIzostaviBezPolaznika")) { query = query.Where(kurs => _ctx.StudentKursDbSet.Where(x => x.Kurs.Id == kurs.Id).Count() > 0); propIzostaviBezPolaznika = true; } var model = new KursIndexVM { Kursevi = query.Select(x => new KursRow { KursId = x.Id, KursNaziv = x.Naziv, KursOpis = x.Opis, KursDatumKreiranja = x.DatumKreiranja, KursVideoId = x.VideoId, KursThumbImagePutanja = "http://img.youtube.com/vi/" + x.VideoId + "/mqdefault.jpg", KursKursNivo = x.Nivo, KursStatus = x.Status, KursPolazniciCount = _ctx.StudentKursDbSet.Where(y => y.Kurs.Id == x.Id).Count() }).OrderByDescending(orderBy => orderBy.KursDatumKreiranja).ToList(), // atributi pretrage KursPretragaNaziv = naziv, KursPretragaOpis = opis, KursPretragaKursNivo = (KursNivo)nivoInt, KursPretragaKursStatus = (KursStatus)statusInt, KursPretragaDatumOd = (datumOd != null && datumOd != "" ? postedDatumOd : null), KursPretragaDatumDo = (datumDo != null && datumDo != "" ? postedDatumDo : null), KursPretragaIzostaviBezPolaznika = propIzostaviBezPolaznika }; return(View("Index", model)); }