private async Task <Expression <Func <ApplicationUser, bool> > > UserSearch(UserInformationAdminSearchDto searchDto) { var predicate = PredicateBuilder.New <ApplicationUser>(true); //if (searchDto.IsCreditIssued == true) // predicate = predicate.Or(p => p.ClaimStatusId == (int)ClaimStatus.CreditIssued); //if (searchDto.IsApproved == true) // predicate = predicate.Or(p => p.ClaimStatusId == (int)ClaimStatus.Approved); //if (searchDto.IsDenied == true) // predicate = predicate.Or(p => p.ClaimStatusId == (int)ClaimStatus.Denied); //if (searchDto.IsCurrent == true || (!searchDto.IsApproved == true && !searchDto.IsDenied == true)) // predicate = predicate.Or(p => p.ClaimStatusId > (int)ClaimStatus.Approved); //if (!string.IsNullOrEmpty(searchDto.MtuSalesOrderNumber)) // predicate = predicate.And(s => EF.Functions.Like(s.MtuSalesOrderNumber.ToString(), searchDto.MtuSalesOrderNumber.Replace("*", "%"))); //if (!string.IsNullOrEmpty(searchDto.DistributorInfoId)) // predicate = predicate.And(s => EF.Functions.Like(s.DistributorInfoId.ToString(), searchDto.DistributorInfoId.Replace("*", "%"))); //if (!await _userResolverService.IsUserInRoleAsync("Administrator,Approver")) //{ // var user = await _userResolverService.GetCurrentUserAsync(); // predicate = predicate.And(p => // user.UserDistributors.Select(d => d.DistributorInfo).Select(c => c.DistributorInfoId).ToList() // .Contains(p.DistributorInfoId)); //} if (!string.IsNullOrEmpty(searchDto.LastName)) { predicate = predicate.And(s => EF.Functions.Like(s.LastName, searchDto.LastName.Replace("*", "%"))); } if (!await _userResolverService.IsUserInRoleAsync("Administrator,Approver")) { } return(predicate); }