コード例 #1
0
        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));
        }
コード例 #2
0
        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));
        }