private Dictionary <string, List <PromoModels.MarkedItem> > ApplyGet(PromoModels.Get get, Dictionary <string, List <PromoModels.MarkedItem> > groupedItems, PromoModels.Promo promo) { if (!groupedItems.TryGetValue(get.Category, out List <PromoModels.MarkedItem> val)) { return(groupedItems); } groupedItems = MarkGetItems(groupedItems, get, promo); return(groupedItems); }
private Dictionary <string, List <PromoModels.MarkedItem> > MarkGetItems(Dictionary <string, List <PromoModels.MarkedItem> > groupedItems, PromoModels.Get get, PromoModels.Promo promo) { var markCount = 0; for (int i = 0; i < groupedItems[get.Category].Count; i++) { var item = groupedItems[get.Category][i]; if (get.All == false && markCount == get.Count) { break; } var isMarkedBuy = item.MarkedBuys.TryGetValue(promo.Id, out bool val1); var isMarkedGet = item.MarkedGets.TryGetValue(promo.Id, out float val2); if (!isMarkedBuy && !isMarkedGet) { groupedItems[get.Category][i].MarkedGets[promo.Id] = ComputeOffPrice(item.Item.Price, get.Off); markCount += 1; } } return(groupedItems); }