public ActionResult invoiceDetailList(DataSourceRequest command, InvoiceDetailSearchCondition condition) { condition.PageSize = command.PageSize; condition.PageNumber = command.Page - 1; var invoice = _invoiceService.GetInvoiceById(condition.InvoiceId); PageList <InvoiceDetailModel> invoiceDetails; if (invoice.OrderId.HasValue) { condition.OrderId = invoice.OrderId.Value; invoiceDetails = _invoiceService.GetInvoiceDetailsByOrderId(condition); } else { invoiceDetails = _invoiceService.SearchInvoiceDetails(condition); } //invoiceDetails = _invoiceService.SearchInvoiceDetails(condition); invoiceDetails.DataSource.ForEach(x => x.Amount = x.UnitPrice * x.Quantity); var gridModel = new DataSourceResult { Data = invoiceDetails.DataSource, Total = invoiceDetails.TotalItems }; return(Json(gridModel)); }
public PageList <InvoiceDetailModel> GetInvoiceDetailsByOrderId(InvoiceDetailSearchCondition condition) { var query = _shoppingContext.OrderDetails.AsNoTracking().Where(w => w.OrderId == condition.OrderId); var orderDetails = query.OrderBy(o => o.Id).Skip(condition.PageSize * condition.PageNumber) .Take(condition.PageSize).ToList(); return(new PageList <InvoiceDetailModel>(Mapper.Map <List <InvoiceDetailModel> >(orderDetails), query.Count())); }
public PageList <InvoiceDetailModel> SearchInvoiceDetails(InvoiceDetailSearchCondition condition) { var query = _shoppingContext.InvoiceDetails.AsNoTracking().AsQueryable(); if (condition.InvoiceId > 0) { query = query.Where(p => p.InvoiceId == condition.InvoiceId); } var invoiceDetails = query.OrderBy(o => o.Id).Skip(condition.PageSize * condition.PageNumber) .Take(condition.PageSize).ToList(); return(new PageList <InvoiceDetailModel>(Mapper.Map <List <InvoiceDetailModel> >(invoiceDetails), query.Count())); }