Пример #1
0
        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)
            });
        }
Пример #2
0
 public BillDetailResponse GetAllBillDetails(BillDetailSearchRequest searchRequest)
 {
     return(billDetailRepository.GetAllBillDetails(searchRequest));
 }