private void Page_Load(object sender, EventArgs e) { // Find parent discount object if (Page.EditedObjectParent == null) { return; } var discount = new Discount(Page.EditedObjectParent); // Check if user is allowed to read discount if (!DiscountInfoProvider.IsUserAuthorizedToReadDiscount(discount.DiscountSiteID, MembershipContext.AuthenticatedUser)) { Page.EditedObjectParent = null; } var url = URLHelper.ResolveUrl("~/CMSModules/Ecommerce/Pages/Tools/Discount/Discount_Codes_Generator.aspx"); url = URLHelper.AddParameterToUrl(url, "discountId", discount.DiscountID.ToString()); // Inform generator about discount type in case of multi buy discount if ((MultiBuyDiscountInfo)discount != null) { url = URLHelper.AddParameterToUrl(url, "isMultiBuy", "1"); } // Add action for coupon codes generation Page.AddHeaderAction(new HeaderAction { Text = ResHelper.GetString("com.discount.generatecoupons"), RedirectUrl = url, Index = 1, Enabled = discount.DiscountUsesCoupons && DiscountInfoProvider.IsUserAuthorizedToModifyDiscount(SiteContext.CurrentSiteName, MembershipContext.AuthenticatedUser), ButtonStyle = ButtonStyle.Default }); }
private IWhereCondition GetNotStartedDiscounts() { switch (DiscountType) { case DiscountTypeEnum.CatalogDiscount: return(DiscountInfoProvider.GetDiscounts() .WhereTrue("DiscountEnabled") .WhereNotNull("DiscountValidFrom").WhereGreaterThan("DiscountValidFrom", DateTime.Now)); case DiscountTypeEnum.OrderDiscount: case DiscountTypeEnum.ShippingDiscount: return(DiscountInfoProvider.GetDiscounts() .WhereTrue("DiscountEnabled") .WhereNot(IncompleteDiscountsCondition()) .WhereNotNull("DiscountValidFrom").WhereGreaterThan("DiscountValidFrom", DateTime.Now)); case DiscountTypeEnum.ProductCoupon: return(MultiBuyDiscountInfoProvider.GetProductCouponDiscounts().Where(NotStartedMultiBuyDiscountsCondition())); case DiscountTypeEnum.MultibuyDiscount: return(MultiBuyDiscountInfoProvider.GetMultiBuyDiscounts().Where(NotStartedMultiBuyDiscountsCondition())); case DiscountTypeEnum.GiftCard: return(GiftCardInfoProvider.GetGiftCards() .WhereTrue("GiftCardEnabled") .WhereNot(IncompleteGiftCardsCondition()) .WhereNotNull("GiftCardValidFrom").WhereGreaterThan("GiftCardValidFrom", DateTime.Now)); } return(new WhereCondition()); }
void HeaderActions_ActionPerformed(object sender, CommandEventArgs e) { if (e.CommandName == "generate") { if (!DiscountInfoProvider.IsUserAuthorizedToModifyDiscount(SiteContext.CurrentSiteName, CurrentUser)) { RedirectToAccessDenied(ModuleName.ECOMMERCE, "EcommerceModify OR ModifyDiscounts"); } // Collect data from form count = ValidationHelper.GetInteger(txtNumberOfCodes.Text, 0); numberOfUses = ValidationHelper.GetInteger(txtTimesToUse.Text, int.MinValue); prefix = txtPrefix.Text.Trim(); // Validate inputs if (!ValidateInputs()) { return; } // Set numberOfUses to 0 for empty if (string.IsNullOrEmpty(txtTimesToUse.Text)) { numberOfUses = 0; } // Run action in asynchronous control EnsureAsyncLog(); RunAsync(GenerateCodes); } }
/// <summary> /// Returns query to filter active discounts. /// </summary> private WhereCondition GetActiveQuery() { IWhereCondition activeQuery; if (IsMultibuy) { activeQuery = MultiBuyDiscountInfoProvider.GetRunningDiscounts(CurrentSite.SiteID, DateTime.Now); } else { activeQuery = DiscountInfoProvider.GetRunningDiscounts(CurrentSite.SiteID, DateTime.Now); } return(new WhereCondition(activeQuery.Expand(activeQuery.WhereCondition))); }
private void CreateDiscounts() { DiscountInfoProvider.SetDiscountInfo(new DiscountInfo { DiscountName = "FlatCatalogDiscount", DiscountDisplayName = "Flat Catalog Discount", DiscountSiteID = SiteID, DiscountOrder = 1, DiscountEnabled = true, DiscountUsesCoupons = false, DiscountApplyTo = DiscountApplicationEnum.Products, DiscountCustomerRestriction = DiscountCustomerEnum.All, DiscountApplyFurtherDiscounts = true, ItemDiscountIsFlat = true, DiscountValue = 10 }); DiscountInfoProvider.SetDiscountInfo(new DiscountInfo { DiscountName = "RelativeCatalogDiscount", DiscountDisplayName = "Relative Catalog Discount", DiscountSiteID = SiteID, DiscountOrder = 1, DiscountEnabled = true, DiscountUsesCoupons = false, DiscountApplyTo = DiscountApplicationEnum.Products, DiscountCustomerRestriction = DiscountCustomerEnum.All, DiscountApplyFurtherDiscounts = true, ItemDiscountIsFlat = false, DiscountValue = 10 }); DiscountInfoProvider.SetDiscountInfo(new DiscountInfo { DiscountName = "RelativeCatalogDiscount2", DiscountDisplayName = "Relative Catalog Discount 2", DiscountSiteID = SiteID, DiscountOrder = 2, DiscountEnabled = true, DiscountUsesCoupons = false, DiscountApplyTo = DiscountApplicationEnum.Products, DiscountCustomerRestriction = DiscountCustomerEnum.All, DiscountApplyFurtherDiscounts = true, ItemDiscountIsFlat = false, DiscountValue = 10 }); }
protected void ugDiscounts_OnAction(string actionName, object actionArgument) { switch (actionName.ToLowerCSafe()) { case "edit": string elementName = null; switch (DiscountType) { case DiscountApplicationEnum.Products: elementName = "EditCatalogDiscount"; break; case DiscountApplicationEnum.Order: elementName = "EditOrderDiscount"; break; case DiscountApplicationEnum.Shipping: elementName = "EditShippingDiscount"; break; } if (!string.IsNullOrEmpty(elementName)) { var url = UIContextHelper.GetElementUrl("CMS.Ecommerce", elementName, false, actionArgument.ToInteger(0)); URLHelper.Redirect(url); } return; case "delete": var discountInfo = DiscountInfoProvider.GetDiscountInfo(ValidationHelper.GetInteger(actionArgument, 0)); // Check permissions, if check is successful delete discount, otherwise redirect to access denied page if (discountInfo.CheckPermissions(PermissionsEnum.Delete, SiteContext.CurrentSiteName, CurrentUser)) { DiscountInfoProvider.DeleteDiscountInfo(discountInfo); } else { RedirectToAccessDenied("CMS.Ecommerce", "EcommerceModify OR ModifyDiscounts"); } return; } }
void HeaderActions_ActionPerformed(object sender, CommandEventArgs e) { if (e.CommandName == "generate") { if (!DiscountInfoProvider.IsUserAuthorizedToModifyDiscount(SiteContext.CurrentSiteName, CurrentUser)) { RedirectToAccessDenied("CMS.Ecommerce", "EcommerceModify OR ModifyDiscounts"); } // Collect data from form count = ValidationHelper.GetInteger(txtNumberOfCodes.Text, 0); numberOfUses = ValidationHelper.GetInteger(txtTimesToUse.Text, int.MinValue); prefix = txtPrefix.Text.Trim(); // Validate inputs if (count < 1) { ShowError(GetString("com.couponcode.invalidcount")); return; } if (!string.IsNullOrEmpty(txtTimesToUse.Text) && ((numberOfUses <= 0) || (numberOfUses > 999999))) { ShowError(GetString("com.couponcode.invalidnumberOfUses")); return; } if (!string.IsNullOrEmpty(prefix) && !ValidationHelper.IsCodeName(prefix)) { ShowError(GetString("com.couponcode.invalidprefix")); return; } // Set numberOfUses to 0 for empty if (string.IsNullOrEmpty(txtTimesToUse.Text)) { numberOfUses = 0; } // Run action in asynchronous control EnsureAsyncLog(); RunAsync(GenerateCodes); } }
protected void ugDiscounts_RowDataBound(object sender, GridViewRowEventArgs e) { // Apply different CSS style for specified statuses if (e.Row.RowType != DataControlRowType.DataRow) { return; } int id = ValidationHelper.GetInteger(((DataRowView)(e.Row.DataItem)).Row["DiscountID"], 0); var discount = DiscountInfoProvider.GetDiscountInfo(id); if (discount != null) { string discountCssClass = "DiscountStatus"; switch (discount.DiscountStatus) { case DiscountStatusEnum.Disabled: discountCssClass += "Disabled"; break; case DiscountStatusEnum.Active: discountCssClass += "Active"; break; case DiscountStatusEnum.NotStarted: discountCssClass += "NotStarted"; break; case DiscountStatusEnum.Finished: discountCssClass += "Finished"; break; default: discountCssClass += "Default"; break; } e.Row.CssClass = discountCssClass; } }
private IWhereCondition GetIncompleteDiscounts() { switch (DiscountType) { // Catalog discounts can't be incomplete case DiscountTypeEnum.OrderDiscount: case DiscountTypeEnum.ShippingDiscount: return(DiscountInfoProvider.GetDiscounts().Where(IncompleteDiscountsCondition())); case DiscountTypeEnum.ProductCoupon: return(MultiBuyDiscountInfoProvider.GetProductCouponDiscounts().Where(IncompleteMultiBuyDiscountsCondition())); case DiscountTypeEnum.MultibuyDiscount: return(MultiBuyDiscountInfoProvider.GetMultiBuyDiscounts().Where(IncompleteMultiBuyDiscountsCondition())); case DiscountTypeEnum.GiftCard: return(GiftCardInfoProvider.GetGiftCards().Where(IncompleteGiftCardsCondition())); } return(new WhereCondition()); }
private IWhereCondition GetDisabledDiscounts() { switch (DiscountType) { case DiscountTypeEnum.CatalogDiscount: case DiscountTypeEnum.OrderDiscount: case DiscountTypeEnum.ShippingDiscount: return(DiscountInfoProvider.GetDiscounts().WhereFalse("DiscountEnabled")); case DiscountTypeEnum.ProductCoupon: return(MultiBuyDiscountInfoProvider.GetProductCouponDiscounts().WhereFalse("MultiBuyDiscountEnabled")); case DiscountTypeEnum.MultibuyDiscount: return(MultiBuyDiscountInfoProvider.GetMultiBuyDiscounts().WhereFalse("MultiBuyDiscountEnabled")); case DiscountTypeEnum.GiftCard: return(GiftCardInfoProvider.GetGiftCards().WhereFalse("GiftCardEnabled")); } return(new WhereCondition()); }
private IWhereCondition GetActiveDiscounts() { switch (DiscountType) { case DiscountTypeEnum.CatalogDiscount: return(DiscountInfoProvider.GetRunningDiscounts(CurrentSite.SiteID, DateTime.Now, DiscountApplicationEnum.Products)); case DiscountTypeEnum.OrderDiscount: case DiscountTypeEnum.ShippingDiscount: return(DiscountInfoProvider.GetRunningDiscounts(CurrentSite.SiteID, DateTime.Now)); case DiscountTypeEnum.ProductCoupon: return(MultiBuyDiscountInfoProvider.GetRunningProductCouponDiscounts(CurrentSite.SiteID, DateTime.Now)); case DiscountTypeEnum.MultibuyDiscount: return(MultiBuyDiscountInfoProvider.GetRunningMultiBuyDiscounts(CurrentSite.SiteID, DateTime.Now)); case DiscountTypeEnum.GiftCard: return(GiftCardInfoProvider.GetRunningGiftCards(CurrentSite.SiteID, DateTime.Now)); } return(new WhereCondition()); }
private void Page_Load(object sender, EventArgs e) { // Find parent discount object if (Page.EditedObjectParent != null) { var parentDiscount = (DiscountInfo)Page.EditedObjectParent; // Check if user is allowed to read discount if (!DiscountInfoProvider.IsUserAuthorizedToReadDiscount(new SiteInfoIdentifier(parentDiscount.DiscountSiteID), MembershipContext.AuthenticatedUser)) { Page.EditedObjectParent = null; } // Add action for coupon codes generation Page.AddHeaderAction(new HeaderAction { Text = ResHelper.GetString("com.discount.generatecoupons"), RedirectUrl = URLHelper.ResolveUrl("~/CMSModules/Ecommerce/Pages/Tools/Discount/Discount_Codes_Generator.aspx?discountId=" + parentDiscount.DiscountID), Index = 1, Enabled = parentDiscount.DiscountUsesCoupons && DiscountInfoProvider.IsUserAuthorizedToModifyDiscount(SiteContext.CurrentSiteName, MembershipContext.AuthenticatedUser) }); } }