private IQueryable <GrupaVMs.GrupaCardListItemVM> GetInitGrupaQuery(int?kategorijaId, GrupaStatus status, int start, int length)
        {
            var query = _db.Grupe
                        .Where(w => (kategorijaId ?? 0) == 0 || w.Kurs.KursTip.KursKategorija.KursKategorijaId == kategorijaId);

            query = query.Where(w => (w.Status == status));

            var query1 = query.Select(s => new GrupaVMs.GrupaCardListItemVM()
            {
                GrupaId              = s.GrupaId,
                Naziv                = s.Naziv,
                Pocetak              = s.Pocetak.ToString("d/M/yyyy H:mm"),
                Kraj                 = s.Kraj != null ? ((DateTime)s.Kraj).ToString("d/M/yyyy") : "",
                Casova               = s.Casova ?? s.Kurs.KursTip.Casova,
                Cijena               = (s.Cijena ?? s.Kurs.KursTip.Cijena) + "KM",
                Slika                = s.Slika.SlikaFile,
                SlikaUrl             = s.Slika.SlikaUrl,
                KursKategorijaNaziv  = s.Kurs.KursTip.KursKategorija.Naziv,
                KursTipNaziv         = s.Kurs.KursTip.Naziv,
                KursNaziv            = s.Kurs.Naziv,
                ZaposlenikNaziv      = s.Zaposlenik.Osoba.Ime + " " + s.Zaposlenik.Osoba.Prezime,
                CentarId             = s.CentarId,
                CentarLokacija       = s.Centar.Grad.Naziv,
                KandidataPrijavljeno = _db.GrupaKandidati.Count(w => w.GrupaId == s.GrupaId),
                //Ocjena = 3.3D // _db.Ocjene.Where(w =>w.GrupaKandidati.GrupaId == s.GrupaId).Average(a=>a.Vrijednost) ovo pravi gresku
                //Ocjena = _db.Ocjene.Where(w => w.GrupaKandidati.GrupaId == s.GrupaId).DefaultIfEmpty().Average(a=>a==null?0D:a.Vrijednost)
                Ocjena = _db.Ocjene.Where(w => !w.Silenced && w.GrupaKandidati.GrupaId == s.GrupaId).Select(ss => ss.Vrijednost)
                         .DefaultIfEmpty(0).Average()
            }).Skip(start).Take(length);

            return(query1);
        }
        public async Task <JsonResult> GetGrupeCardListItem(int draw, int?kategorijaId,
                                                            int start, int length = 6, GrupaStatus status = GrupaStatus.Aktivna)
        {
            var query = GetInitGrupaQuery(kategorijaId, status, start, length);

            var recordsTotal = await query.CountAsync();

            var list = await query.ToListAsync();

            var recordsFiltered = list.Count();

            return(Json(new
            {
                draw,
                recordsTotal,
                recordsFiltered,
                data = list
            }));
        }