public async Task <List <PermissionActionViewModel> > GetPermissons(string businessId, Guid userId)
        {
            var grantItems = (from g in (await _grantPermissionRepository.FindAll()).AsNoTracking()
                              join p in await _businessActionService.FindAll() on g.BusinessActionId equals p.Id
                              where g.UserId == userId && p.BusinessId == businessId
                              select new PermissionActionViewModel
            {
                Description = p.Description,
                IsGranted = true,
                PermissionID = p.Id,
                PermissionName = p.Name
            });

            var allPermissons = from p in (await _businessActionService.FindAll()).AsNoTracking().AsParallel().AsOrdered().WithDegreeOfParallelism(3).GroupBy(x => x.Name).Select(x => x.FirstOrDefault())
                                where p.BusinessId == businessId
                                select new PermissionActionViewModel
            {
                PermissionID = p.Id, PermissionName = p.Name, Description = p.Description, IsGranted = false
            };

            var listpermissionId = grantItems.Select(p => p.PermissionID);


            foreach (var item in allPermissons)
            {
                if (!listpermissionId.Contains(item.PermissionID))
                {
                    grantItems.ToList().Add(item);
                }
            }

            return(grantItems.ToList());
        }
 public async Task <List <BusinessActionViewModel> > GetAll(BusinessActionRequest request)
 {
     return(new BusinessActionViewModel().Map(await _repository.FindAll(x => x.BusinessId == request.BusinessId)).ToList());
 }