Esempio n. 1
0
        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);
        }