public override bool MeetsQualification(PromotionContext context, PromotionQualificationMode mode) { if (context == null) { return(false); } var idToTest = context.CurrentShippingMethodId.Trim(); if (idToTest.Length < 1) { if (context.Order == null) { return(false); } idToTest = context.Order.ShippingMethodId.Trim(); } if (idToTest.Length < 1) { return(false); } foreach (var itemid in ItemIds()) { if (idToTest.ToUpperInvariant() == itemid.ToUpperInvariant()) { return(true); } } return(false); }
public override bool MeetsQualification(PromotionContext context, PromotionQualificationMode mode) { if (context == null) { return(false); } if (context.CurrentCustomer == null) { return(false); } if (context.CurrentCustomer.Bvin == string.Empty) { return(false); } var customer = context.CurrentCustomer; var roles = GetCustomerRoles(customer); var roleIds = GetRoleIds(); foreach (var role in roles) { if (roleIds.Contains(role.RoleID)) { return(true); } } return(false); }
public override bool MeetsQualification(PromotionContext context, PromotionQualificationMode mode) { if (context == null) { return(false); } if (context.Order == null) { return(false); } if (context.Order.Items == null) { return(false); } if (mode == PromotionQualificationMode.LineItems) { if (context.CurrentlyProcessingLineItem == null) { return(false); } var li = context.CurrentlyProcessingLineItem; return(MeetLineItem(context, li)); } if (mode == PromotionQualificationMode.Orders) { var items = context.Order.Items; return(items.Any(i => MeetLineItem(context, i))); } return(false); }
public override bool MeetsQualification(PromotionContext context, PromotionQualificationMode mode) { if (mode != PromotionQualificationMode.Products) { return(false); } if (context == null) { return(false); } if (context.Product == null) { return(false); } if (context.UserPrice == null) { return(false); } var ids = CurrentIds(); var match = context.Product.ProductTypeId.Trim().ToLowerInvariant(); // for "generic" type we need to match 0 instead of empty string if (match == string.Empty) { match = "0"; } if (IsNotMode) { return(!ids.Contains(match)); } return(ids.Contains(match)); }
public override bool MeetsQualification(PromotionContext context, PromotionQualificationMode mode) { if (context == null) { return(false); } if (context.CurrentCustomer == null) { return(false); } if (string.IsNullOrEmpty(context.CurrentCustomer.Bvin)) { return(false); } var userId = Convert.ToInt32(context.CurrentCustomer.Bvin); var affiliate = context.HccApp.ContactServices.Affiliates.FindByUserId(userId); if (HasReffferalID) { var refAffiliate = context.HccApp.ContactServices.Affiliates.FindByAffiliateId(affiliate.ReferralAffiliateId); return(refAffiliate != null && refAffiliate.Enabled && affiliate.Approved && affiliate.Enabled); } return(affiliate.Approved && affiliate.Enabled); }
public override bool MeetsQualification(PromotionContext context, PromotionQualificationMode mode) { if (mode != PromotionQualificationMode.Orders && mode != PromotionQualificationMode.LineItems) { return(false); } if (context == null) { return(false); } if (context.Order == null) { return(false); } if (context.Order.Items == null) { return(false); } switch (SetMode) { case QualificationSetMode.AnyOfTheseItems: return(MatchAny(Quantity, context.Order.Items, CurrentIds())); case QualificationSetMode.AllOfTheseItems: return(MatchAll(Quantity, context.Order.Items, CurrentIds())); } return(false); }
public override bool MeetsQualification(PromotionContext context, PromotionQualificationMode mode) { if (mode != PromotionQualificationMode.Orders && mode != PromotionQualificationMode.LineItems) { return(false); } if (context == null) { return(false); } if (context.Order == null) { return(false); } if (context.Order.Coupons == null) { return(false); } foreach (var coupon in CurrentCoupons()) { if (context.Order.CouponCodeExists(coupon)) { return(true); } } return(false); }
public override bool MeetsQualification(PromotionContext context, PromotionQualificationMode mode) { if (context == null) { return(false); } if (context.CurrentCustomer == null) { return(false); } if (context.CurrentCustomer.Bvin == string.Empty) { return(false); } var currentId = context.CurrentCustomer.Bvin.Trim().ToUpperInvariant(); foreach (var uid in UserIds()) { if (currentId == uid) { return(true); } } return(false); }
public override bool MeetsQualification(PromotionContext context, PromotionQualificationMode mode) { if (mode == PromotionQualificationMode.Orders) { var resItems = GetFilteredItems(context); if (CalculationMode == SumOrCountMode.SumMode) { return(resItems.Sum(i => i.LineTotal) >= SumAmount); } return(resItems.Sum(i => i.Quantity) >= SumAmount); } return(false); }
private bool ApplyPromotion(PromotionContext context, PromotionQualificationMode qualificationMode) { if (GetStatus() == PromotionStatus.Active) { var qualified = CheckQualifications(context, qualificationMode); if (qualified) { RunActions(context); } return(qualified); } return(false); }
public override bool MeetsQualification(PromotionContext context, PromotionQualificationMode mode) { if (mode != PromotionQualificationMode.Orders && mode != PromotionQualificationMode.LineItems) { return(false); } if (context == null) { return(false); } if (context.Order == null) { return(false); } return(true); }
public override bool MeetsQualification(PromotionContext context, PromotionQualificationMode mode) { if (mode != PromotionQualificationMode.Products) { return(false); } if (context == null) { return(false); } if (context.Mode != PromotionType.Sale) { return(false); } if (context.Product == null) { return(false); } if (context.UserPrice == null) { return(false); } if (context.HccApp == null) { return(false); } // Note: this only checks the first 100 categories. You're pretty much insane if you're // running a promotion on a product by category and it's in more than 100 categories. var assignments = context.HccApp.CatalogServices.CategoriesXProducts.FindForProduct(context.Product.Bvin, 1, 100); foreach (var cross in assignments) { var match = cross.CategoryId.Trim().ToLowerInvariant(); if (CurrentCategoryIds().Contains(match)) { return(true); } } return(false); }
public override bool MeetsQualification(PromotionContext context, PromotionQualificationMode mode) { if (mode != PromotionQualificationMode.Products) { return(false); } if (context == null) { return(false); } if (context.Product == null) { return(false); } if (context.UserPrice == null) { return(false); } return(true); }
public override bool MeetsQualification(PromotionContext context, PromotionQualificationMode mode) { if (mode != PromotionQualificationMode.Orders && mode != PromotionQualificationMode.LineItems) { return(false); } if (context == null) { return(false); } if (context.Order == null) { return(false); } if (context.Order.Items == null) { return(false); } return(MatchAny(context.Order.Items, CurrentIds())); }
public override bool MeetsQualification(PromotionContext context, PromotionQualificationMode mode) { if (context == null) { return(false); } if (context.CurrentCustomer == null) { return(false); } if (context.CurrentCustomer.PricingGroupId == string.Empty) { return(false); } if (CurrentGroupIds().Contains(context.CurrentCustomer.PricingGroupId.Trim().ToLowerInvariant())) { return(true); } return(false); }
public override bool MeetsQualification(PromotionContext context, PromotionQualificationMode mode) { if (mode != PromotionQualificationMode.LineItems && mode != PromotionQualificationMode.Orders) { return(false); } if (context == null) { return(false); } if (context.Order == null) { return(false); } if (context.Order.TotalOrderBeforeDiscounts - RemoveDiscountedAmount(context) >= Amount) { return(true); } return(false); }
public override bool MeetsQualification(PromotionContext context, PromotionQualificationMode mode) { if (mode != PromotionQualificationMode.Products) { return(false); } if (context == null) { return(false); } if (context.Product == null) { return(false); } if (context.UserPrice == null) { return(false); } var match = context.Product.Bvin.Trim().ToLowerInvariant(); return(GetProductIds().Contains(match)); }
public virtual bool MeetsQualification(PromotionContext context, PromotionQualificationMode mode) { return(false); }
/// <summary> /// Make sure we meet all requirements /// </summary> /// <remarks> /// NOTE: we order by processing cost which should allow us to check /// the fastest items first. For example, checking userID is faster /// than checking user group because ID is in the context and group /// requires a database call. /// </remarks> /// <param name="context"></param> /// <param name="mode"></param> /// <returns></returns> public bool CheckQualifications(PromotionContext context, PromotionQualificationMode mode) { var qualificationsSorted = _qualifications.OrderBy(y => y.ProcessingCost); return(qualificationsSorted.All(q => q.MeetsQualification(context, mode))); }