public IActionResult VratiSveZahtjeveProjekta(int projekatId, [FromQuery] ListaZahtjevaProjektaRequestModel model) { var result = zahtjevService.VratiSveZahtjeveProjekta(projekatId, model); return(Convert(result)); }
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)); }