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); }
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()); }
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); } }
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()); }
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); }
public async Task <List <FunctionViewModel> > GetAll() { var lstFunction = await _functionRepository.FindAll().ToListAsync(); var listFunctionVm = _mapper.Map <List <FunctionViewModel> >(lstFunction); return(listFunctionVm); }
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); }
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()); }
public IEnumerable <FunctionViewModel> GatAllWithParentId(string parentId) { return(_functionRepository.FindAll().Where(x => x.ParentId == parentId).ProjectTo <FunctionViewModel>()); }