public void Load(bool isDeliveryOrder) { _isDeliveryOrder = isDeliveryOrder; // CartItem -> Product -> DealItem Product = new BxDealItem(_dealId); if (_dealId > 0) { Product.Load(_isDeliveryOrder); } // CartItem -> Product -> DealItem -> (*) MenuItem if (_menuItemId > 0) { var item = new BxMenuItem(_menuItemId) {}; item.Load(_isDeliveryOrder); //item.Name = "asd"; if (!string.IsNullOrWhiteSpace(item.Name) && !Product.Contains(item)) { Product.Items.Add(item); } } // CartItem -> Product -> DealItem -> (*) MenuItem -> (*) SubMenuItem if (_subMenuItemId != 0) { var subItem = new SubMenuItem(_menuItemId, _subMenuItemId); subItem.Load(_isDeliveryOrder); if (!string.IsNullOrWhiteSpace(subItem.Name) && !Product.GetMenuItem(_menuItemId).Contains(subItem)) { Product.GetMenuItem(_menuItemId).Items.Add(subItem); if ((subItem.UnitPrice > 0)) { Product.GetMenuItem(_menuItemId).UnitPrice = subItem.UnitPrice; } } } // Is this add dressing? // CartItem -> Product -> DealItem -> (*) MenuItem -> (*) Dressing if (_dressingId != 0) { var dressing = new MenuDressing(_menuItemId, _dressingId); dressing.Load(_isDeliveryOrder); if (!Product.GetMenuItem(_menuItemId).Contains(dressing)) { Product.Items.Add(dressing); } } // Is this adding topping? // CartItem -> Product -> DealItem -> (*) MenuItem -> (*) Topping if (_toppingId != 0) { var isExcluding = _toppingId < 0; var topping = new MenuTopping(_menuItemId, _subMenuItemId, Math.Abs(_toppingId)); topping.Load(_isDeliveryOrder); if (!string.IsNullOrWhiteSpace(topping.Name) && !Product.GetMenuItem(_menuItemId).Contains(topping)) { if (isExcluding) { topping.Name = "NOT " + topping.Name; } Product.Items.Add(topping); } } }
private void AddToppingOnMenuItemWithPosition(int menuId, int subMenuId, int toppingId, string toppingPos, ref BxCartItem item) { if (item == null) return; BxDealItem dealItem = item.Product; if (dealItem == null) return; BxMenuItem menuItemToAddToppingOn = null; for (int index = 0; index < dealItem.Items.Count; index++) { BxMenuItem mnuItem = dealItem.Items[index] as BxMenuItem; if (mnuItem == null) continue; if (mnuItem.ID == menuId) { menuItemToAddToppingOn = mnuItem; break; } } //var menuItemToAddToppingOn = item.Product.GetMenuItem(menuId); if (menuItemToAddToppingOn == null) return; if (toppingId != 0) { var isExcluding = toppingId < 0; var topping = new MenuTopping(menuId,subMenuId, Math.Abs(toppingId)); topping.Load(IsDeliveryOrder); if (!string.IsNullOrWhiteSpace(topping.Name) && !menuItemToAddToppingOn.Contains(topping)) { if (isExcluding) { topping.Name = "NO " + topping.Name; topping.UnitPrice = 0; } else { if (toppingPos.ToLower() == "left") { topping.Name = "LEFT " + topping.Name; } else { if (toppingPos.ToLower() == "right") { topping.Name = "RIGHT " + topping.Name; } } } menuItemToAddToppingOn.Items.Add(topping); } } }