public PageResult <NovostiToDisplay> getNovosti(PageResultQuery pageResultQuery, int?id = 0)
        {
            var query = _context.Novosti.OrderByDescending(x => x.NovostiID).Select(x => new NovostiToDisplay
            {
                Id                 = x.NovostiID,
                Naslov             = x.Naslov,
                Text               = x.Text,
                DatumObjavljivanja = x.DatumObjavljivanja,
                GlavnaSlika        = x.Slika,
            }).AsQueryable();

            if (id != 0)
            {
                query = query.Where(x => x.Id == id);
            }

            var novosti = query.ToList();

            var result = new PageResult <NovostiToDisplay>
            {
                Count     = novosti.Count,
                PageIndex = pageResultQuery.PageNumber,
                PageSize  = pageResultQuery.PageSize,
                Items     = novosti.Skip((pageResultQuery.PageNumber - 1) * pageResultQuery.PageSize).Take(pageResultQuery.PageSize).ToList(),
                TotalPage = (int)Math.Ceiling((double)novosti.Count / pageResultQuery.PageSize)
            };

            return(result);
        }
        public ActionResult <PageResult <ObavjestenjeToDisplay> > GetObavjestenja([FromQuery] PageResultQuery pageResultQuery, [FromQuery] int kategorijaId)
        {
            var obavjestenja = _obavjestenjaService.GetObavjestenja(pageResultQuery, kategorijaId);

            if (obavjestenja == null)
            {
                return(BadRequest("Nema obavještenja"));
            }

            return(obavjestenja);
        }
        public ActionResult <PageResult <NovostiToDisplay> > GetNovosti([FromQuery] PageResultQuery pageResultQuery, [FromQuery] int id)
        {
            var novosti = _novostiService.getNovosti(pageResultQuery, id);

            if (novosti == null)
            {
                return(BadRequest("Nema novosti"));
            }

            return(novosti);
        }
Example #4
0
        public PageResult <ObavjestenjeToDisplay> GetObavjestenja(PageResultQuery pageResultQuery, int kategorijaId)
        {
            var obavijestiId = _context.ObavjestenjaKategorijeObavjestenja.Select(x => x.ObavjestenjaID).Distinct().ToList();
            List <ObavjestenjeToDisplay>       queryAll        = new List <ObavjestenjeToDisplay>();
            IQueryable <ObavjestenjeToDisplay> queryByCategory = null;

            if (kategorijaId == 0)
            {
                queryAll = _context.Obavjestenja
                           .OrderByDescending(x => x.ObavjestenjaID)
                           .Select(x => new ObavjestenjeToDisplay
                {
                    Id                 = x.ObavjestenjaID,
                    Naslov             = x.Naslov,
                    Text               = x.Text,
                    DatumObjavljivanja = x.DatumObjavljivanja,
                    GlavnaSlika        = x.Slika,
                    Kategorije         = _context.ObavjestenjaKategorijeObavjestenja.Where(v => v.ObavjestenjaID == x.ObavjestenjaID).Include(b => b.ObavjestenjaKategorije).Select(z => z.ObavjestenjaKategorije).ToList(),
                    KategorijaId       = _context.ObavjestenjaKategorijeObavjestenja.Where(v => v.ObavjestenjaID == x.ObavjestenjaID).Include(b => b.ObavjestenjaKategorije).Select(n => n.ObavjestenjaKategorijeID).FirstOrDefault()
                }).ToList();
            }
            else
            {
                queryByCategory = _context.ObavjestenjaKategorijeObavjestenja
                                  .Include(x => x.Obavjestenja)
                                  .Include(x => x.ObavjestenjaKategorije)
                                  .OrderByDescending(x => x.ObavjestenjaID)
                                  .Select(x => new ObavjestenjeToDisplay
                {
                    Id                 = x.ObavjestenjaID,
                    Naslov             = x.Obavjestenja.Naslov,
                    Text               = x.Obavjestenja.Text,
                    DatumObjavljivanja = x.Obavjestenja.DatumObjavljivanja,
                    GlavnaSlika        = x.Obavjestenja.Slika,
                    Kategorije         = _context.ObavjestenjaKategorije.Where(c => c.ObavjestenjaKategorijeID == kategorijaId).ToList(),
                    KategorijaId       = x.ObavjestenjaKategorijeID
                }).AsQueryable();

                queryByCategory = queryByCategory.Where(x => x.KategorijaId == kategorijaId);
            }

            var obavjestenja = kategorijaId == 0 ? queryAll : queryByCategory.ToList();
            var result       = new PageResult <ObavjestenjeToDisplay>
            {
                Count     = obavjestenja.Count,
                PageIndex = pageResultQuery.PageNumber,
                PageSize  = pageResultQuery.PageSize,
                Items     = obavjestenja.Skip((pageResultQuery.PageNumber - 1) * pageResultQuery.PageSize).Take(pageResultQuery.PageSize).ToList(),
                TotalPage = (int)Math.Ceiling((double)obavjestenja.Count / pageResultQuery.PageSize)
            };

            return(result);
        }