public async Task <IHttpActionResult> GetAllAsPagedList(InvoiceListRequestDto input) { //var result = await _invoiceAppService.GetAsPagedList(input); //return Ok(result); return(Ok()); }
public async Task <PagedListResult <InvoiceDto> > GetAllInvoicesAsPagedList(InvoiceListRequestDto input) { Expression <Func <Eron.Core.Entities.Financial.Base.Invoice, bool> > filter = x => true; #region set Filters #region set invoiceNumber filter if (input.InvoiceNumber.IsPopulated()) { filter = filter.AndAlso(invoice => invoice.InvoiceNumber.Contains(input.InvoiceNumber)); } #endregion set invoiceNumber filter #region set time period filter if (input.DatePeriod.HasValue) { DateTime periodDateTime; switch (input.DatePeriod) { case DatePeriodType.Day: periodDateTime = DateTime.Now.Date; break; case DatePeriodType.Week: var dayOfWeek = PersianDateTime.Now.PersianDayOfWeek; periodDateTime = DateTime.Now.Date.AddDays(-(int)dayOfWeek); break; case DatePeriodType.Month: periodDateTime = new PersianDateTime(PersianDateTime.Now.Year, PersianDateTime.Now.Month, 1) .ToDateTime(); break; case DatePeriodType.Year: periodDateTime = new PersianDateTime(PersianDateTime.Now.Year, 1, 1).ToDateTime(); break; case DatePeriodType.All: periodDateTime = default(DateTime); break; default: throw new ArgumentOutOfRangeException(nameof(input.DatePeriod), input.DatePeriod, null); } if (periodDateTime != default(DateTime)) { filter = filter.AndAlso(x => x.CreateDateTime > periodDateTime); } } #endregion set time period filter #region set invoiceStatusType filter if (input.InvoiceStatus.HasValue) { filter = filter.AndAlso(x => x.InvoiceStatus == input.InvoiceStatus); } #endregion set invoiceStatusType filter #region set invoiceType filter if (input.Type.HasValue) { filter = filter.AndAlso(x => x.Type == input.Type); } #endregion #endregion #region set Order input.SetOrder("CreateDateTime", "desc"); #endregion var result = await UnitOfWork.InvoiceRepository.GetAsPagedListAsync(input, filter, "InvoiceItems, InvoiceItems.ProductPrice, InvoiceItems.TariffPrice, User"); foreach (var invoice in result.Result) { foreach (var item in invoice.InvoiceItems) { if (item.ProductPrice != null) { invoice.Amount += item.ProductPrice.Price * item.Count; } else if (item.TariffPrice != null) { invoice.Amount += item.TariffPrice.Price * item.Count; } invoice.TotalCount += item.Count; } } return(result.MapTo <PagedListResult <InvoiceDto> >()); }
public async Task <IHttpActionResult> AllInvoices(InvoiceListRequestDto input) { var result = await _invoiceAppService.GetAllInvoicesAsPagedList(input); return(Ok(result)); }