public IActionResult VratiSveZahtjeveProjekta(int projekatId, [FromQuery] ListaZahtjevaProjektaRequestModel model)
        {
            var result = zahtjevService.VratiSveZahtjeveProjekta(projekatId, model);

            return(Convert(result));
        }
Beispiel #2
0
        public ServiceResult <ZahtjevListModel> VratiSveZahtjeveProjekta(int projekatId, ListaZahtjevaProjektaRequestModel model)
        {
            var securityLevel = new SecurityLevel();

            var query = context.Zahtjevi.Where(z => z.ProjekatId == projekatId && !z.IsDeleted)
                        .AsQueryable();

            //query = Secure(query, securityLevel);

            // uradi filtriranje po dijelu projekta
            if (model.DioProjektaId != null)
            {
                query = query.Where(s => s.ZahtjevKategorija.DioProjektaId == model.DioProjektaId);
            }
            // uradi filtriranje po kategoriji zahtjeva
            if (model.KategorijaId != null)
            {
                query = query.Where(s => s.ZahtjevKategorijaId == model.KategorijaId);
            }

            // uradi filtriranje po tipu zahtjeva
            if (model.TipId != null)
            {
                query = query.Where(s => s.ZahtjevTipId == model.TipId);
            }

            // uradi filtriranje po prioritetu zahtjeva
            if (model.PrioritetId != null)
            {
                query = query.Where(s => s.ZahtjevPrioritetId == model.PrioritetId);
            }

            // uradi filtriranje po statusu zahtjeva
            if (model.StatusId != null)
            {
                query = query.Where(s => s.ZahtjevStatusId == model.StatusId);
            }

            if (!String.IsNullOrWhiteSpace(model.Naziv))
            {
                var lowerNaziv = model.Naziv.ToLower();
                query = query.Where(s => s.Naziv.ToLower().Contains(lowerNaziv));
            }
            // uradi filtriranje po opisu zahtjeva
            if (!String.IsNullOrWhiteSpace(model.Opis))
            {
                var lowerOpis = model.Opis.ToLower();
                query = query.Where(s => s.Opis.ToLower().Contains(lowerOpis));
            }

            // uradi filtriranje po nazivu korisnika
            if (!String.IsNullOrWhiteSpace(model.CreatedBy))
            {
                var lowerCreatedBy = model.CreatedBy.ToLower();
                query = query.Where(s => s.CreatedBy.ToLower().Contains(lowerCreatedBy));
            }



            var zahtjeviProjekta = query.ToZahtjevListModelItem().OrderBy(x => x.PocetakIzrade)
                                   .ToList();

            if (zahtjeviProjekta == null)
            {
                return(NotFound());
            }

            var total = zahtjeviProjekta.Count();

            zahtjeviProjekta = zahtjeviProjekta.Skip(model.Page * model.Count - model.Count)
                               .Take(model.Count).ToList();


            var result = new ZahtjevListModel
            {
                Items = zahtjeviProjekta,
                Page  = model.Page,
                Total = total
            };

            return(Ok(result));
        }