private bool HasRestrictions(Coupon coupon, TicketItem ticketItem) { Item item = Item.Get(ticketItem.ItemId); // Coupon Category Restrictions List <CouponCategory> cats = new List <CouponCategory>(CouponCategory.GetAll(coupon.Id)); if ((cats.Count > 0) && coupon.IsExclusive && CouponCategory.FindByCategoryId(cats, item.CategoryId) == null) { return(true); } if ((cats.Count > 0) && !coupon.IsExclusive && CouponCategory.FindByCategoryId(cats, item.CategoryId) != null) { return(true); } // Coupon Item Restrictions List <CouponItem> items = new List <CouponItem>(CouponItem.GetAll(coupon.Id)); if ((items.Count > 0) && coupon.IsExclusive && CouponItem.FindByItemId(items, item.Id) == null) { return(true); } if ((items.Count > 0) && !coupon.IsExclusive && CouponItem.FindByItemId(items, item.Id) != null) { return(true); } return(false); }
private void UpdateCouponItems() { int[] currentItemIds = GetItemIds(); if (EqualIdCollections(currentItemIds, _pendingItemIds)) { return; } if (currentItemIds != null) { List <CouponItem> couponItems = new List <CouponItem>(CouponItem.GetAll(ActiveCoupon.Id)); // Remove any in current, that doesn't exist in pending foreach (CouponItem existing in from id in currentItemIds where _pendingItemIds == null || !_pendingItemIds.Any(testId => testId == id) select CouponItem.FindByItemId(couponItems, id)) { CouponItem.Delete(existing.Id); } } // Add any missing pending to the current if (_pendingItemIds != null) { foreach (int id in _pendingItemIds .Where(id => !(currentItemIds != null && currentItemIds.Any(testId => testId == id)))) { // Add a new CouponCategory for this Coupon CouponItem.Add(ActiveCoupon.Id, id); } } }
private void UpdateCoupon() { if (editorControl.UpdateCoupon()) { SetEditMode(false); if (listBox1.SelectedIndex >= 0) { var item = (FormattedListBoxItem)listBox1.SelectedItem; item.Set(editorControl.ActiveCoupon, editorControl.ActiveCoupon.Description); } else { var listItem = new FormattedListBoxItem( editorControl.ActiveCoupon, editorControl.ActiveCoupon.Description, true); listBox1.Items.Add(listItem); listBox1.SelectedItem = listItem; listBox1.ScrollIntoView(listItem); buttonDelete.IsEnabled = true; } } if (editorControl.ActiveCoupon != null) { var couponCategories = new List <CouponCategory>(CouponCategory.GetAll(editorControl.ActiveCoupon.Id)); foreach (int id in editorControl.couponCategorySelectionControl.SelectedCategoryIds .Where(id => CouponCategory.FindByCategoryId(couponCategories, id) == null)) { CouponCategory.Add(editorControl.ActiveCoupon.Id, id); } foreach (CouponCategory category in couponCategories .Where(category => !editorControl.couponCategorySelectionControl.SelectedCategoryIds .Contains(category.CategoryId))) { CouponCategory.Delete(editorControl.ActiveCoupon.Id, category.CategoryId); } var couponItems = new List <CouponItem>(CouponItem.GetAll(editorControl.ActiveCoupon.Id)); foreach (int id in editorControl.couponItemSelectionControl.SelectedItemIds .Where(id => CouponItem.FindByItemId(couponItems, id) == null)) { CouponItem.Add(editorControl.ActiveCoupon.Id, id); } foreach (CouponItem item in couponItems .Where(item => !editorControl.couponCategorySelectionControl.SelectedCategoryIds .Contains(item.ItemId))) { CouponItem.Delete(editorControl.ActiveCoupon.Id, item.ItemId); } } }