public static List <WCF_RequisitionDetailJoinItemList> RetrievalList() { LastADEntities ctx = new LastADEntities(); List <WCF_RequisitionDetailJoinItemList> list = ctx.RequDetails.Where(x => x.Requisition.Status.Equals("Waiting for Collection")).GroupBy(x => x.ItemId). Select(y => (new { id = y.Key, quantity = y.Sum(x => x.OutstandingQuantity) })) .Join(ctx.ItemLists, m => m.id, f => f.ItemId, (m, f) => new WCF_RequisitionDetailJoinItemList { itemid = m.id, itemname = f.Description, Quantity = m.quantity, uom = f.UOM, bin = f.Bin }) .OrderBy(x => x.bin).ToList(); foreach (WCF_RequisitionDetailJoinItemList w in list) { int quantityneed = Business.GetTotalQtyNeeded(w.itemid); w.RetrievalQuantity = Business.GetTotalQtyNeeded(w.itemid).ToString(); int?Stock = ctx.ItemLists.Where(x => x.ItemId.Equals(w.itemid)).Select(x => x.Stock).First(); if (Stock > quantityneed) { w.RetrievalQuantity = quantityneed.ToString(); } else { w.RetrievalQuantity = Stock.ToString(); } } return(list); }