public Customer(int orders, DateTime lastOrderDate) { Orders = orders; LastOrderDate = lastOrderDate; _discountPolicy = new NoDiscountPolicy(); ReCalculateDiscount(); }
public CompositeDiscountPolicy(IDiscountPolicy discountPolicy1, ILogicOperator @operator, IDiscountPolicy discountPolicy2, int discountPercentage, string description) { Guid = Guid.NewGuid(); DiscountPolicy1 = discountPolicy1; Operator = @operator; DiscountPolicy2 = discountPolicy2; DiscountPercentage = discountPercentage; Description = description; }
public Guid AddNewDiscountPolicy(IDiscountPolicy newDiscountPolicy) { if (DiscountPolicies == null) { DiscountPolicies = new List <IDiscountPolicy>(); } DiscountPolicies.Add(newDiscountPolicy); return(newDiscountPolicy.Guid); }
public Guid AddNewDiscountPolicy(Shop shop, IDiscountPolicy newDiscountPolicy) { if (shop.DiscountPolicies == null) { shop.DiscountPolicies = new List <IDiscountPolicy>(); } shop.DiscountPolicies.Add(newDiscountPolicy); _unitOfWork.ShopRepository.Update(shop); return(newDiscountPolicy.Guid); }
private static void VerifyProductDiscountPolicy(IDiscountPolicy discountPolicy1, IDiscountPolicy discountPolicy2) { var expected = (ProductDiscountPolicy)discountPolicy1; var actual = (ProductDiscountPolicy)discountPolicy2; Assert.AreEqual(expected.Guid, actual.Guid); Assert.AreEqual(expected.Description, actual.Description); Assert.AreEqual(expected.ProductGuid, actual.ProductGuid); Assert.AreEqual(expected.Operator.ToString(), actual.Operator.ToString()); Assert.AreEqual(expected.DiscountPercentage, actual.DiscountPercentage); }
private static void VerifyUserDiscountPolicy(IDiscountPolicy discountPolicy1, IDiscountPolicy discountPolicy2) { var expected = (UserDiscountPolicy)discountPolicy1; var actual = (UserDiscountPolicy)discountPolicy2; Assert.AreEqual(expected.Guid, actual.Guid); Assert.AreEqual(expected.Description, actual.Description); Assert.AreEqual(expected.FieldName, actual.FieldName); Assert.AreEqual(expected.ExpectedValue, actual.ExpectedValue); Assert.AreEqual(expected.DiscountPercentage, actual.DiscountPercentage); }
private static void VerifyCompositeDiscountPolicy(IDiscountPolicy purchasePolicy1, IDiscountPolicy purchasePolicy2) { var expected = (CompositeDiscountPolicy)purchasePolicy1; var actual = (CompositeDiscountPolicy)purchasePolicy2; Assert.AreEqual(expected.Guid, actual.Guid); Assert.AreEqual(expected.Description, actual.Description); Assert.AreEqual(expected.Operator.ToString(), actual.Operator.ToString()); Assert.AreEqual(expected.DiscountPercentage, actual.DiscountPercentage); VerifyProductDiscountPolicy(expected.DiscountPolicy1, actual.DiscountPolicy1); VerifyCartDiscountPolicy(expected.DiscountPolicy2, actual.DiscountPolicy2); }
public Guid AddNewDiscountPolicy(Guid userGuid, Guid shopGuid, IDiscountPolicy newPolicy) { throw new BadStateException($"Tried to invoke AddNewDiscountPolicy in GuestUser"); }
private void ReCalculateDiscount() => _discountPolicy = _discountPolicy.CalculateDiscount(this);
public Price CalculateValue(Price price, IDiscountPolicy discountPolicy) { var priceAfterDiscount = discountPolicy.CalculatePrice(price); return(_amount * priceAfterDiscount); }
public PizzaOrderingSystemInterfaces(IDiscountPolicy discountPolicy) { _discountPolicy = discountPolicy; }