public void AddItem(RetailItem item) { if (_cartItems.Count >= _maxItemCnt) { throw new CartException($"Unable to add [{item.Name}] as cart is full"); } if (item.Category?.Name == "BabySupplies") { try { item.IsValidForSnap = _taxCalculator.QualifiesForSnap(item); } catch (Exception ex) { throw new ComplianceException("Failure calling tax calculator", ex); } } _cartItems.Add(item); }