//-- private function --// //-> ListingForMasterDetail private async Task <GetListDTO <ItemViewForMasterDTO> > ListingForMasterDetail(int currentPage, IQueryable <dynamic> items, string search = null) { int startRow = Helper.Helper.GetStartRow(currentPage); List <ItemViewForMasterDTO> itemViewForMasters = new List <ItemViewForMasterDTO>(); var myItems = await items.Skip(startRow).Take(Helper.Helper.pageSize).ToListAsync(); foreach (var item in myItems) { var itemViewForMaster = new ItemViewForMasterDTO(); itemViewForMaster = Helper.Helper.MapDBClassToDTO <tblItem, ItemViewForMasterDTO>(item.item); itemViewForMaster.documents = Helper.Helper.GetDocuments(item.document); itemViewForMasters.Add(itemViewForMaster); } var getList = new GetListDTO <ItemViewForMasterDTO>(); getList.metaData = await Helper.Helper.GetMetaData(currentPage, items, "name", "asc", search); getList.results = itemViewForMasters; return(getList); }
//-> GetItemsForGroup private async Task <List <ItemViewForMasterDTO> > GetItemsForGroup(int itemGroupID) { var items = from i in db.tblItems join d in db.sm_doc.Where(x => x.docs_Deleted == null && x.tableID == Helper.Helper.document_ItemTableID) on i.id.ToString() equals d.value into document where i.item_Deleted == null && i.itemGroupID == itemGroupID orderby i.name ascending select new { item = i, document = document }; List <ItemViewForMasterDTO> itemViewForMasters = new List <ItemViewForMasterDTO>(); var myItem = await items.Take(Helper.Helper.pageSize).ToListAsync(); // here no skip record, becos we want to take 20 tblItems for every single Item group; foreach (var item in items.Take(Helper.Helper.pageSize)) { var itemViewForMaster = new ItemViewForMasterDTO(); itemViewForMaster = Helper.Helper.MapDBClassToDTO <tblItem, ItemViewForMasterDTO>(item.item); itemViewForMaster.documents = Helper.Helper.GetDocuments(item.document.ToList()); itemViewForMasters.Add(itemViewForMaster); } return(itemViewForMasters); }