public async Task <List <FunctionViewModel> > GetFunctionsByRole(string[] roles)
        {
            var listFunctionViewModel = new List <FunctionViewModel>();

            foreach (var roleName in roles)
            {
                var roleModel = await _roleManager.FindByNameAsync(roleName);

                var permissions = _permissionRepository.FindAll(x => x.CanRead != false);
                var functions   = _functionRepository.FindAll();
                var query       = from p in permissions
                                  join f in functions on p.FunctionId equals f.Id
                                  where p.RoleId == roleModel.Id
                                  select f;
                var functionVm = query.ProjectTo <FunctionViewModel>(query).ToList();
                listFunctionViewModel.AddRange(functionVm);
            }

            var parentFunctions = listFunctionViewModel.Where(x => x.ParentId == null).OrderBy(x => x.SortOrder);
            var functionsSorted = new List <FunctionViewModel>();

            foreach (var function in parentFunctions)
            {
                functionsSorted.Add(function);
                var childrendFunc = listFunctionViewModel.Where(x => x.ParentId == function.Id).OrderBy(x => x.SortOrder);
                functionsSorted.AddRange(childrendFunc);
            }
            return(functionsSorted);
        }
Example #2
0
        public List <PermissionViewModel> GetListFunctionWithRole(Guid roleId)
        {
            var functions   = _functionRepository.FindAll();
            var permissions = _permissionRepository.FindAll();

            var query = from f in functions
                        join p in permissions on f.Id equals p.FunctionId into fp
                        from p in fp.DefaultIfEmpty()
                        where p != null && p.RoleId == roleId
                        let canRead = p != null ? p.CanRead : false
                                      let canCreate = p != null ? p.CanCreate : false
                                                      let candUpdate = p != null ? p.CanUpdate : false
                                                                       let canDelete = p != null ? p.CanDelete : false
                                                                                       select new PermissionViewModel()
            {
                RoleId     = roleId,
                FunctionId = f.Id,
                CanRead    = canRead,
                CanCreate  = canCreate,
                CanUpdate  = candUpdate,
                CanDelete  = canDelete
            };

            return(query.ToList());
        }
Example #3
0
        public Task <List <FunctionViewModel> > GetAll(string filter)
        {
            var query = _functionRepository.FindAll(x => x.Status == Status.Active);

            query = string.IsNullOrEmpty(filter) ? query : query.Where(x => x.Name.Contains(filter));
            return(query.OrderBy(x => x.ParentId).ProjectTo <FunctionViewModel>().ToListAsync());
        }
        public Task <List <FunctionViewModel> > GetAll(string filter)
        {
            var query = _functionRepository.FindAll();

            if (string.IsNullOrEmpty(filter))
            {
                query = query.Where(x => x.Name.Contains(filter) || x.Id.Contains(filter));
            }
            return(query.ProjectTo <FunctionViewModel>().ToListAsync());
        }
        public async Task <List <FunctionViewModel> > GetAll(string filter)
        {
            var query = (await _functionRepository.FindAll(x => x.Status == Status.Active)).AsNoTracking().AsParallel();

            if (!string.IsNullOrEmpty(filter))
            {
                query = query.AsParallel().AsUnordered().WithDegreeOfParallelism(3).Where(x => x.Name.Contains(filter));
            }

            var results = query.OrderBy(x => x.ParentId);

            return(new FunctionViewModel().Map(results).ToList());
        }
 public List <FunctionViewModel> GetAll(string filter)
 {
     if (string.IsNullOrEmpty(filter))
     {
         List <FunctionViewModel> query = _mapper.Map <List <FunctionViewModel> >(_functionRepository.FindAll()
                                                                                  .OrderBy(x => x.ParentId).ToList());
         return(query);
     }
     else
     {
         List <FunctionViewModel> query = _mapper.Map <List <FunctionViewModel> >(_functionRepository.FindAll(x => x.Name.Contains(filter))
                                                                                  .OrderBy(x => x.ParentId).ToList());
         return(query);
     }
 }
Example #7
0
        public async Task <List <FunctionViewModel> > GetAllAsync(string filter)
        {
            var query = _functionRepository.FindAll(x => x.Status == Status.Active);

            if (!string.IsNullOrEmpty(filter))
            {
                query = query.Where(x => x.Name.Contains(filter));
            }
            var funsVm = await query.OrderBy(x => x.ParentId).ProjectTo <FunctionViewModel>().ToListAsync();

            var listChild = funsVm;

            funsVm.ForEach(m => m.Children.AddRange(listChild.Where(x => x.ParentId == m.Id)));
            return(funsVm);
        }
        public Task <bool> CheckPermission(string functionId, string action, string[] roles)
        {
            var functions   = _functionRepository.FindAll();
            var permissions = _permissionRepository.FindAll();
            var query       = from f in functions
                              join p in permissions on f.Id equals p.FunctionId
                              join r in _roleManager.Roles on p.RoleId equals r.Id
                              where roles.Contains(r.Name) && f.Id == functionId &&
                              ((p.CanCreate && action == "Create") ||
                               (p.CanUpdate && action == "Update") ||
                               (p.CanDelete && action == "Delete") ||
                               (p.CanRead && action == "Read"))
                              select p;

            return(query.AnyAsync());
        }
Example #9
0
        public List <PermissionViewModel> GetListFunctionWithRole(Guid roleId)
        {
            var functions   = _functionRepository.FindAll();
            var permissions = _permissionRepository.FindAll();

            var query = from f in functions
                        join p in permissions on f.Id equals p.FunctionId into fp
                        from p in fp.DefaultIfEmpty()
                        where p != null && p.RoleId == roleId
                        select new PermissionViewModel()
            {
                RoleId     = roleId,
                FunctionId = f.Id
            };

            return(query.ToList());
        }
        public async Task <List <FunctionViewModel> > GetAll()
        {
            var functions = await _functionRepository.FindAll(x => x.Status == Status.Active)
                            .ProjectTo <FunctionViewModel>().ToListAsync();

            var parentFunctions = functions.Where(x => x.ParentId == null).OrderBy(x => x.SortOrder);

            var functionsSorted = new List <FunctionViewModel>();

            foreach (var function in parentFunctions)
            {
                functionsSorted.Add(function);
                var childrendFunc = functions.Where(x => x.ParentId == function.Id).OrderBy(x => x.SortOrder);
                functionsSorted.AddRange(childrendFunc);
            }
            return(functionsSorted);
        }
Example #11
0
        public async Task <List <FunctionViewModel> > GetAll()
        {
            var lstFunction = await _functionRepository.FindAll().ToListAsync();

            var listFunctionVm = _mapper.Map <List <FunctionViewModel> >(lstFunction);

            return(listFunctionVm);
        }
Example #12
0
        public PageResult <FunctionModel> GetSearchPaging(FunctionSearch search)
        {
            var query = _functionRepository.FindAll();

            //if (search.Id > 0)
            //{
            //    query = query.Where(r => r.Id == search.Id);
            //}

            //if (!string.IsNullOrEmpty(search.Name))
            //{
            //    query = query.Where(r => r.Name.Contains(search.Name));
            //}
            //if (!string.IsNullOrEmpty(search.Description))
            //{
            //    query = query.Where(r => r.Description.Contains(search.Description));
            //}

            var Total = query.Count();

            var data = query
                       .OrderByDescending(f => f.CreatedDate)
                       .Skip((search.PageIndex - 1) * search.PageSize)
                       .Take(search.PageSize)
                       .Select(f => f.ToModel())
                       .ToList();

            foreach (var item in data)
            {
                if (item.ParentId != null && item.ParentId > 0)
                {
                    var nameParent = data.Where(f => f.Id == item.ParentId).FirstOrDefault().Name;
                    item.NameParent = nameParent;
                }
            }

            var result = new PageResult <FunctionModel>()
            {
                Results   = data,
                PageIndex = search.PageIndex,
                PageSize  = search.PageSize,
                Total     = Total,
            };

            return(result);
        }
Example #13
0
        public async Task <List <PermissionViewModel> > GetListFunctionWithRole(Guid roleId)
        {
            var functions = (await _functionRepository.FindAll(x => x.Status == Status.Active)).AsNoTracking().AsParallel().AsUnordered();

            var permissions = (await _permissionRepository.FindAll()).AsNoTracking().AsParallel().AsUnordered();

            var query = from f in functions
                        join p in permissions on f.Id equals p.FunctionId into fp
                        from q in fp.DefaultIfEmpty()
                        where q != null && q.RoleId == roleId
                        select new PermissionViewModel
            {
                RoleId     = roleId,
                FunctionId = f.Id,
                CanCreate  = q != null && q.CanCreate,
                CanDelete  = q != null && q.CanDelete,
                CanRead    = q != null && q.CanRead,
                CanUpdate  = q != null && q.CanUpdate
            };

            return(query.ToList());
        }
 public Task <List <FunctionViewModel> > GetAll()
 {
     return(_functionRepository.FindAll().ProjectTo <FunctionViewModel>().ToListAsync());
 }
 public IEnumerable <t_Function> FindAll()
 {
     return(functionRepository.FindAll());
 }
Example #16
0
 public IEnumerable <FunctionViewModel> GatAllWithParentId(string parentId)
 {
     return(_functionRepository.FindAll().Where(x => x.ParentId == parentId).ProjectTo <FunctionViewModel>());
 }