public ActionResult List(OrderReportFilterModel model) { List <Order> c = new List <Order>(); List <OrderReportModel> d = new List <OrderReportModel>(); var p = PredicateBuilder.True <Order>(); p = p.And(x => x.Payment_isPaid); if (model.FromDate.HasValue) { p = p.And(m => m.CreatedOn >= model.FromDate.Value); } if (model.ToDate.HasValue) { p = p.And(m => m.CreatedOn <= model.ToDate.Value); } c = Db.Select <Order>().OrderBy(x => (x.CreatedOn)).ToList(); if (c.Count != 0) { DateTime dtFrom = DateTime.ParseExact(c.First().CreatedOn.ToString("dd/MM/yyyy"), "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture); DateTime dtTo = dtFrom.AddHours(23).AddMinutes(59).AddSeconds(59); do { List <Order> lstOrderTrunc = c.Where(x => (x.CreatedOn >= dtFrom && x.CreatedOn <= dtTo)).OrderBy(x => x.Shipping_DisplayPriceSign).ToList(); if (lstOrderTrunc.Count != 0) { string priceSign = lstOrderTrunc.First().Shipping_DisplayPriceSign; int numOrders = 0; double totalMoney = 0; foreach (Order order in lstOrderTrunc) { if (order.Shipping_DisplayPriceSign == priceSign) { numOrders++; totalMoney += order.Bill_Total; continue; } d.Add(new OrderReportModel() { FromDate = dtFrom, ToDate = dtTo, PriceSign = priceSign, NumOrders = numOrders, TotalMoney = totalMoney }); priceSign = order.Shipping_DisplayPriceSign; numOrders = 1; totalMoney = order.Bill_Total; } d.Add(new OrderReportModel() { FromDate = dtFrom, ToDate = dtTo, PriceSign = priceSign, NumOrders = numOrders, TotalMoney = totalMoney }); } dtFrom = dtFrom.Add(TimeSpan.FromDays(1)); dtTo = dtTo.Add(TimeSpan.FromDays(1)); }while (c.Last().CreatedOn >= dtFrom); } return(PartialView("_List", d)); }
public ActionResult Index() { var model = new OrderReportFilterModel(); return(View(model)); }