Пример #1
0
        public BillForInmateWithBillDetailsSpecification(BillFilter filter, bool forCount = false) :
            base(b =>
                 (!filter.Month.HasValue || b.Month == filter.Month) &&
                 (!filter.Year.HasValue || b.Year == filter.Year) &&
                 (string.IsNullOrEmpty(filter.PaidPredicate) || b.PaymentStatus == (PaymentStatus)Enum.Parse(typeof(PaymentStatus), filter.PaidPredicate)) &&
                 (string.IsNullOrEmpty(filter.Search) || b.Inmate.FullName.ToLower().Contains(filter.Search)))
        {
            if (!forCount)
            {
                //AddInclude(b => b.BillItems);
                AddInclude(b => b.Inmate);
                AddOrderByDesc(b => b.CreatedOn);
                if (!string.IsNullOrEmpty(filter.Sort))
                {
                    switch (filter.Sort.ToLower())
                    {
                    case "byNameAsc":
                        AddOrderBy(x => x.Inmate.FullName);
                        break;

                    case "byNameDesc":
                        AddOrderByDesc(x => x.Inmate.FullName);
                        break;

                    default:
                        AddOrderByDesc(b => b.CreatedOn);
                        break;
                    }
                }
                AddPagination((filter.PageIndex - 1) * filter.PageSize, filter.PageSize);
            }
        }
        public async Task <ActionResult <IReadOnlyList <BillDto> > > GetBills([FromQuery] BillFilter filter)
        {
            var bills = await _billservice.GetInmateBillsAsync(filter);

            var count = await _billservice.GetInmateBillsCountAsync(filter);

            Response.AddPaginationHeader(count, filter.PageIndex, filter.PageSize);

            var billsToReturnDto = _mapper.Map <IReadOnlyList <BillDto> >(bills);

            return(Ok(billsToReturnDto));
        }
Пример #3
0
        public async Task <IList <Bill> > Query(BillFilter filter)
        {
            var param = new DynamicParameters();

            param.Add("ID", filter.ID);
            param.Add("RequestID", filter.RequestID);
            param.Add("RefNo", filter.RefNo);
            param.Add("RefID", filter.RefID);
            param.Add("CustomerName", filter.CustomerName);
            param.Add("Status", filter.Status);
            param.Add("From", filter.From);
            param.Add("To", filter.To);
            param.Add("InvoiceNo", filter.InvoiceNo);
            param.Add("Type", filter.Type);

            var mapper = new BillMapper();

            return((await SqlMapper.QueryAsync(_unitOfWork.Connection,
                                               "SelectBill",
                                               new[]
            {
                typeof(Bill),
                typeof(BillLineItem),
                typeof(Payment)
            },
                                               obj =>
            {
                return mapper.Map(obj[0] as Bill,
                                  obj[1] as BillLineItem,
                                  obj[2] as Payment);
            },
                                               param,
                                               splitOn: "ID,LineItemID,PaymentID",
                                               commandType: CommandType.StoredProcedure,
                                               transaction: _unitOfWork.Transaction)).Distinct().ToList());
        }
Пример #4
0
 public FilterBillCommand(BillFilter filter)
 {
     _filter = filter;
 }
Пример #5
0
        public async Task <int> GetInmateBillsCountAsync(BillFilter filter)
        {
            var spec = new BillForInmateWithBillDetailsSpecification(filter, true);

            return(await _unitOfWork.Repository <InmateBill>().GetCountForSpecAsync(spec));
        }
Пример #6
0
        public async Task <IReadOnlyList <InmateBill> > GetInmateBillsAsync(BillFilter filter)
        {
            var spec = new BillForInmateWithBillDetailsSpecification(filter);

            return(await _unitOfWork.Repository <InmateBill>().FindAllBySpecAsync(spec));
        }
Пример #7
0
 public async Task <IList <Model.Bill> > Filter(BillFilter filter)
 {
     return(await _apiClient.BillSdk.List(filter));
 }
Пример #8
0
        public static Task <IEnumerable <Bill> > GetBillsAsync(this FreeAgentClient client, BillFilter filterBy = BillFilter.All, BillOrder orderBy = BillOrder.DueDate, DateTime?fromDate = null, DateTime?toDate = null)
        {
            var view = filterBy.GetMemberValue();
            var sort = orderBy.GetMemberValue();

            return(client.GetOrCreateAsync(c => c.BillList(client.Configuration.CurrentHeader, view, sort, fromDate, toDate), r => r.Bills));
        }