Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        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));
        }