public Task <FilterResultModel <ItemReportListView> > Handle(GetItemListReportQuery request, CancellationToken cancellationToken) { var sortBy = request.SortBy.Trim() != "" ? request.SortBy : "Item"; var sortDirection = (request.SortDirection.ToUpper() == "DESCENDING") ? false : true; FilterResultModel <ItemReportListView> result = new FilterResultModel <ItemReportListView> (); var itemList = _database.Item .Include(i => i.PrimaryUom) .GroupJoin(_database.StockBatchStorage, item => item.Id, lot => lot.Batch.ItemId, (product, slot) => new ItemLotJoin() { Item = product, Lot = slot }).GroupBy(i => i.Item) .Select(ItemReportListView.Projection) .Select(DynamicQueryHelper.GenerateSelectedColumns <ItemReportListView> (request.SelectedColumns)) .AsQueryable(); if (request.Filter.Count() > 0) { itemList = itemList .Where(DynamicQueryHelper .BuildWhere <ItemReportListView> (request.Filter)).AsQueryable(); } result.Count = itemList.Count(); var PageSize = (request.PageSize == 0) ? result.Count : request.PageSize; var PageNumber = (request.PageSize == 0) ? 1 : request.PageNumber; result.Items = itemList.OrderBy(sortBy, sortDirection) .Skip(PageNumber - 1) .Take(PageSize) .ToList(); return(Task.FromResult <FilterResultModel <ItemReportListView> > (result)); }
public async Task <ActionResult <FilterResultModel <ItemReportListView> > > GetAllItems([FromBody] GetItemListReportQuery query) { var ItemList = await _Mediator.Send(query); return(StatusCode(200, ItemList)); }