public PagingListDetails<TempOrderDetailModel> GetBaskets(TempOrderDetailSearchFilter filter) { var q = _appContext.Set<TempOrderDetail>().AsQueryable(); if (filter != null) { if (!string.IsNullOrWhiteSpace(filter.FromDateSh)) { var dt = PersianDateTime.Parse(filter.FromDateSh).ToDateTime(); q = q.Where(x => x.InsertDateMi >= dt); } if (!string.IsNullOrWhiteSpace(filter.ToDateSh)) { var dt = PersianDateTime.Parse(filter.FromDateSh).ToDateTime(); q = q.Where(x => x.InsertDateMi <= dt); } if (filter.BasketId != null) { var isGuid = Guid.TryParse(filter.BasketId, out Guid id); if (isGuid) q = q.Where(x => x.BasketId == id); } } var groups = q.GroupBy(x => new { x.BasketId, x.InsertDateSh }) .Select(x => new TempOrderDetailModel { BasketId = x.Key.BasketId, InsertDateSh = x.Key.InsertDateSh, TotalPrice = x.Sum(i => i.TotalPrice) }); var items = groups.OrderByDescending(x => x.InsertDateSh) .Skip((filter.PageNumber - 1) * filter.PageSize) .Take(filter.PageSize) .ToList(); var count = q.Count(); return new PagingListDetails<TempOrderDetailModel> { PageNumber = filter.PageNumber, PageSize = filter.PageSize, Items = new PagingList<TempOrderDetailModel>(items, count, filter), TotalCount = count }; }
public virtual ActionResult Manage(TempOrderDetailSearchFilter filter) { if (!Request.IsAjaxRequest()) return View(_TempOrderDetailSrv.Get(filter)); else return PartialView("Partials/_List", _TempOrderDetailSrv.Get(filter)); }
public PagingListDetails <TempOrderDetailModel> Get(TempOrderDetailSearchFilter filter) => _tempOrderDetailRepo.GetBaskets(filter);