public KorisnikListModel VratiSve([FromQuery] ListaKorisnikaRequestModel model) { var result = korisnikService.VratiSve(model); return(result); //return Convert(result); }
//[Authorize("UserIsAdminOrOwner")] public IActionResult VratiSveKorisnikeProjekta(int projekatId, [FromQuery] ListaKorisnikaRequestModel model) { try { var result = projekatService.VratiSveKorisnikeProjekta(projekatId, model); return(Convert(result)); } catch (Exception e) { throw; } }
public KorisnikListModel VratiSve(ListaKorisnikaRequestModel model) { var securityLevel = new SecurityLevel(); var query = context.Users .Include(a => a.Roles) .ThenInclude(a => a.Role) .AsQueryable(); query = Secure(query, securityLevel); // uradi filtriranje po nazivu if (!String.IsNullOrWhiteSpace(model.Filter)) { var lowerFilter = model.Filter.ToLower(); query = query.Where(s => s.PunoIme.ToLower().Contains(lowerFilter)); } // uradi filtriranje po korisnickom imenu if (!String.IsNullOrWhiteSpace(model.Username)) { var lowerFilter = model.Username.ToLower(); query = query.Where(s => s.UserName.ToLower().Contains(lowerFilter)); } // uradi filtriranje po ulozi if (model.UlogaId.HasValue) { query = query.Where(s => s.Roles.Select(a => a.RoleId).Where(x => x.Equals(model.UlogaId)).Count() > 0); } // uradi stranicenje var total = query.Count(); var korisnici = query .OrderBy(s => s.PunoIme) .Skip(model.Page * model.Count - model.Count) .Take(model.Count) .ToKorisnikListModelItem() .ToList(); var result = new KorisnikListModel { Items = korisnici, Page = model.Page, Total = total }; return(result); //return Ok(result); }
public ServiceResult <KorisnikListModel> VratiSve(ListaKorisnikaRequestModel model) { var securityLevel = new SecurityLevel(); var trenutni = authService.TrenutniKorisnik(); if (trenutni.TrenutnaUloga.VrijednostUAplikaciji != (int)Uloga.Administrator && trenutni.TrenutnaUloga.VrijednostUAplikaciji != (int)Uloga.Moderator) { return(Error("Nemate pravo pregleda liste korisnika.")); } var query = context.Korisnici .Include(a => a.KorisnikUloge) .ThenInclude(a => a.Uloga) .AsQueryable(); query = Secure(query, securityLevel); if (trenutni.TrenutnaUloga.VrijednostUAplikaciji == (int)Uloga.Moderator) { var korisnikUlogaId = context.KorisnikUloge.Where(a => a.KorisnickoIme == trenutni.KorisnickoIme && a.UlogaId == trenutni.TrenutnaUlogaId).Select(a => a.KorisnikUlogaId).FirstOrDefault(); var projekti = context.KorisnikProjekti.Where(a => a.KorisnikUlogaId == korisnikUlogaId).Select(a => a.ProjekatId).ToList(); query = context.KorisnikProjekti.Where(a => projekti.Contains(a.ProjekatId)).Select(k => k.KorisnikUloga.Korisnik).Include(a => a.KorisnikUloge) .ThenInclude(a => a.Uloga).Distinct() .AsQueryable(); } if (model.ProjekatId.HasValue) { query = context.KorisnikProjekti.Where(p => p.ProjekatId == model.ProjekatId).Select(k => k.KorisnikUloga.Korisnik).AsQueryable(); //query = query.Where(s => s.KorisnikUloge.Equals(model.ProjekatId)); } // uradi filtriranje po nazivu if (!String.IsNullOrWhiteSpace(model.Filter)) { var lowerFilter = model.Filter.ToLower(); query = query.Where(s => s.PunoIme.ToLower().Contains(lowerFilter)); } // uradi filtriranje po korisnickom imenu if (!String.IsNullOrWhiteSpace(model.Username)) { var lowerFilter = model.Username.ToLower(); query = query.Where(s => s.KorisnickoIme.ToLower().Contains(lowerFilter)); } // uradi filtriranje po ulozi if (model.UlogaId.HasValue) { query = query.Where(s => s.KorisnikUloge.Select(a => a.UlogaId).Where(x => x.Equals(model.UlogaId)).Count() > 0); } // uradi stranicenje var total = query.Count(); var korisnici = query .OrderBy(s => s.PunoIme) .Skip(model.Page * model.Count - model.Count) .Take(model.Count) .ToKorisnikListModelItem() .ToList(); var result = new KorisnikListModel { Items = korisnici, Page = model.Page, Total = total }; return(Ok(result)); }
public ServiceResult <KorisnikListModel> VratiSveKorisnikeProjekta(int projekatId, ListaKorisnikaRequestModel model) { var korisnici = context.KorisnikProjekti.Where(k => k.ProjekatId == projekatId).ToProjekatKorisniciModelItem().ToList(); var total = korisnici.Count(); korisnici = korisnici.Skip(model.Page * model.Count - model.Count) .Take(model.Count).ToList(); var result = new KorisnikListModel { Items = korisnici, Page = model.Page, Total = total }; return(Ok(result)); }
public IActionResult VratiSve([FromQuery] ListaKorisnikaRequestModel model) { var result = korisnikService.VratiSve(model); return(Convert(result)); }