public BillDetailResponse GetAllBillDetails(BillDetailSearchRequest searchRequest) { int fromRow = (searchRequest.PageNo - 1) * searchRequest.PageSize; int toRow = searchRequest.PageSize; Expression <Func <BillDetail, bool> > query = s => (((searchRequest.BillDetailId == 0) || s.BillDetailId == searchRequest.BillDetailId || s.BillDetailId.Equals(searchRequest.Id)) || (searchRequest.AccountNumber == 0 || s.Client.AccountNumber == searchRequest.AccountNumber) || (searchRequest.BillIssueDate == null || s.BillIssueDate == searchRequest.BillIssueDate) || (searchRequest.ServiceNumber == 0 || s.ServiceNumber == searchRequest.ServiceNumber) || (string.IsNullOrEmpty(searchRequest.ServiceType) || s.BillDetailServiceType.ServiceTypeName.Equals(searchRequest.ServiceType)) || (string.IsNullOrEmpty(searchRequest.ChargeType) || s.BillDetailChargeType.ChargeTypeName.Equals(searchRequest.ChargeType)) || (string.IsNullOrEmpty(searchRequest.Description) || s.Description.Equals(searchRequest.Description)) || (searchRequest.Quantity == null || s.Quantity == searchRequest.Quantity) || (searchRequest.InclGst == null || s.InclGst == searchRequest.InclGst)); IEnumerable <BillDetail> details = searchRequest.IsAsc ? DbSet .Where(query) .OrderBy(orderClause[searchRequest.BillDetailByColumn]) .Skip(fromRow) .Take(toRow) .ToList() : DbSet .Where(query) .OrderByDescending(orderClause[searchRequest.BillDetailByColumn]) .Skip(fromRow) .Take(toRow) .ToList(); return(new BillDetailResponse { BillDetails = details, TotalCount = DbSet.Count(query), FilteredCount = DbSet.Count(query) }); }
public BillDetailResponse GetAllBillDetails(BillDetailSearchRequest searchRequest) { return(billDetailRepository.GetAllBillDetails(searchRequest)); }