/// <summary> /// Acquires a serial key for this digital good /// </summary> public void AcquireSerialKey() { if (IsSerialKeyAcquired()) { return; } if (!HasSerialKeyProvider()) { return; } ISerialKeyProvider provider = DigitalGood.GetSerialKeyProviderInstance(); AcquireSerialKeyResponse response = provider.AcquireSerialKey(this); if (response.Successful) { this.SerialKeyData = response.SerialKey; //initiate fulfillment email EmailTemplate template = EmailTemplateDataSource.Load(DigitalGood.FulfillmentEmailId); if (template != null) { SendEmail(template); } } else { //serial key could not be acquired. Logger.Error(string.Format("Serial Key could not be acquired for {0} using Serial Key Provider {1}. Provider Error Message '{2}'", DigitalGood.Name, provider.Name, response.ErrorMessage)); } }
protected void SendEmailButton_Click(object sender, EventArgs e) { if (Page.IsValid) { if ((!trCaptchaImage.Visible) || CaptchaImage.Authenticate(CaptchaInput.Text)) { int productId = AbleCommerce.Code.PageHelper.GetProductId(); Product product = ProductDataSource.Load(productId); if (product != null) { int categoryId = AbleCommerce.Code.PageHelper.GetCategoryId(); Category category = CategoryDataSource.Load(categoryId); EmailTemplate template = EmailTemplateDataSource.Load(AbleContext.Current.Store.Settings.ProductTellAFriendEmailTemplateId); if (template != null) { //STRIP HTML Name.Text = StringHelper.StripHtml(Name.Text); FromEmail.Text = StringHelper.StripHtml(FromEmail.Text); FriendEmail.Text = StringHelper.StripHtml(FriendEmail.Text); // ADD PARAMETERS template.Parameters["store"] = AbleContext.Current.Store; template.Parameters["product"] = product; template.Parameters["category"] = category; template.Parameters["fromEmail"] = FromEmail.Text; template.Parameters["fromName"] = Name.Text; template.FromAddress = FromEmail.Text; template.ToAddress = FriendEmail.Text; template.Send(); FriendEmail.Text = string.Empty; SentMessage.Visible = true; CaptchaInput.Text = ""; CaptchaImage.ChallengeText = StringHelper.RandomNumber(6); } else { FailureMessage.Text = "Email template could not be loaded."; FailureMessage.Visible = true; } } else { FailureMessage.Text = "Product could not be identified."; FailureMessage.Visible = true; } } else { //CAPTCHA IS VISIBLE AND DID NOT AUTHENTICATE CustomValidator invalidInput = new CustomValidator(); invalidInput.ValidationGroup = "TellAFriend"; invalidInput.Text = "*"; invalidInput.ErrorMessage = "You did not input the verification number correctly."; invalidInput.IsValid = false; phCaptchaValidators.Controls.Add(invalidInput); CaptchaInput.Text = ""; CaptchaImage.ChallengeText = StringHelper.RandomNumber(6); } } }
protected void SendButton_Click(Object sender, EventArgs e) { try { EmailTemplate emailTemplate = EmailTemplateDataSource.Load(AbleContext.Current.Store.Settings.AbandonedBasketAlertEmailTemplateId); string fromAddress = emailTemplate.FromAddress; if (fromAddress == "merchant") { fromAddress = AbleContext.Current.Store.Settings.DefaultEmailAddress; } MailMessage mailMessage = new MailMessage(); mailMessage.To.Add(new MailAddress(ToEmail.Text)); mailMessage.From = new MailAddress(fromAddress); string[] ccAddresses = emailTemplate.CCList.Split(','); if (ccAddresses != null && ccAddresses.Length > 0) { foreach (string ccAddress in ccAddresses) { if (ValidationHelper.IsValidEmail(ccAddress)) { mailMessage.CC.Add(new MailAddress(ccAddress.Trim())); } } } string[] bccAddresses = emailTemplate.BCCList.Split(','); if (bccAddresses != null && bccAddresses.Length > 0) { foreach (string bccAddress in bccAddresses) { if (ValidationHelper.IsValidEmail(bccAddress)) { mailMessage.Bcc.Add(new MailAddress(bccAddress.Trim())); } } } mailMessage.Subject = Subject.Text; mailMessage.IsBodyHtml = emailTemplate.IsHTML; mailMessage.Body = emailTemplate.IsHTML ? HtmlMessageContents.Value : TextMessageContents.Text; EmailClient.Send(mailMessage); SendAlertPanel.Visible = false; ConfirmMessage.Text = string.Format(ConfirmMessage.Text, ToEmail.Text); ConfirmPanel.Visible = true; FinishButton.NavigateUrl += "?ReportDate=" + _basket.User.LastActivityDate.Value.ToShortDateString(); } catch (Exception ex) { ErrorMessage.Text = "Error sending message: " + ex.Message; ErrorMessage.Visible = true; Logger.Error(ex.Message, ex); } }
protected void Page_Init(object sender, System.EventArgs e) { IList <EmailTemplate> templates = EmailTemplateDataSource.LoadAll("Name"); EmailTemplate.DataSource = templates; EmailTemplate.DataBind(); AllEmailTemplates.DataSource = templates; AllEmailTemplates.DataBind(); AbleCommerce.Code.PageHelper.SetHtmlEditor(TermsAndConditions, TermsAndConditionsHtml); }
/// <summary> /// Activates this digital good. /// </summary> public void Activate() { _DownloadStatus = DownloadStatus.Unknown; ActivationDate = System.DateTime.UtcNow; DownloadDate = System.DateTime.MinValue; //initiate activation email EmailTemplate template = EmailTemplateDataSource.Load(DigitalGood.ActivationEmailId); if (template != null) { SendEmail(template); } }
protected void Page_Load(object sender, EventArgs e) { // locate basket for alert int basketId = AlwaysConvert.ToInt(Request.QueryString["BasketId"]); _basket = BasketDataSource.Load(basketId); if (_basket == null) { Response.Redirect("MonthlyAbandonedBaskets.aspx"); } // see if we have an email template for abandoned alerts int templateId = AbleContext.Current.Store.Settings.AbandonedBasketAlertEmailTemplateId; EmailTemplate emailTemplate = EmailTemplateDataSource.Load(templateId); if (emailTemplate != null) { // initialize readonly display elements CustomerName.Text = _basket.User.PrimaryAddress.FullName; trCustomerName.Visible = !string.IsNullOrEmpty(CustomerName.Text); BasketContents.Text = GetBasketItems(_basket); LastActivity.Text = _basket.User.LastActivityDate.ToString(); CancelButton.NavigateUrl += "?ReportDate=" + _basket.User.LastActivityDate.Value.ToShortDateString(); // initialize form fields on first visit only if (!Page.IsPostBack) { ToEmail.Text = _basket.User.GetBestEmailAddress(); Hashtable parameters = new Hashtable(); parameters.Add("store", AbleContext.Current.Store); parameters.Add("customer", _basket.User); parameters.Add("basket", _basket); Subject.Text = NVelocityEngine.Instance.Process(parameters, emailTemplate.Subject); if (!emailTemplate.IsHTML) { TextMessageContents.Text = NVelocityEngine.Instance.Process(parameters, emailTemplate.Body); TextMessageContents.Visible = true; HtmlMessageContents.Visible = false; } else { HtmlMessageContents.Value = NVelocityEngine.Instance.Process(parameters, emailTemplate.Body); } } } else { SettingAlertPanel.Visible = true; SendAlertPanel.Visible = false; } }
protected void Page_Load(object sender, System.EventArgs e) { AbleCommerce.Code.PageHelper.ConvertEnterToTab(Name); if (!Page.IsPostBack) { //SignupEmailTemplate IList <EmailTemplate> emailTemplates = EmailTemplateDataSource.LoadAll(); foreach (EmailTemplate template in emailTemplates) { ListItem li = new ListItem(template.Name, template.Id.ToString()); SignupEmailTemplate.Items.Add(li); } } }
protected void Page_Init(object sender, EventArgs e) { _Store = AbleContext.Current.Store; _Settings = _Store.Settings; // INITIALIZE GENERAL SETTINGS DefaultAddress.Text = _Settings.DefaultEmailAddress; SubscriptionAddress.Text = _Settings.SubscriptionEmailAddress; SubscriptionRequestExpirationDays.Text = _Settings.SubscriptionRequestExpirationDays.ToString(); // BIND THE SEND TO FRIEND SELECTBOX IList <EmailTemplate> templates = EmailTemplateDataSource.LoadAll(); EmailTemplatesList.DataSource = templates; EmailTemplatesList.DataBind(); ContactUsEmailTemplatesList.DataSource = templates; ContactUsEmailTemplatesList.DataBind(); // BIND EMAIL TEMPLATES FOR ABANDONED BASKETS ALERT AbandonedBasketEmailTemplateList.DataSource = templates; AbandonedBasketEmailTemplateList.DataBind(); // BIND THE DEFAULT EMAIL LIST SELECTBOX IList <EmailList> emailLists = EmailListDataSource.LoadAll(); DefaultEmailList.DataSource = emailLists; DefaultEmailList.DataBind(); // INITIALIZE SERVER CONFIGURATION SmtpServer.Text = _Settings.SmtpServer; if (String.IsNullOrEmpty(_Settings.SmtpPort)) { SmtpPort.Text = "25"; } else { SmtpPort.Text = _Settings.SmtpPort; } SmtpEnableSSL.Checked = _Settings.SmtpEnableSSL; SmtpUserName.Text = _Settings.SmtpUserName; RequiresAuth.Checked = _Settings.SmtpRequiresAuthentication; // DISABLE SCROLLING DURING VALIDATION AbleCommerce.Code.PageHelper.DisableValidationScrolling(this.Page); }
private void SendConfirmationEmail() { int emailTemplateId = ConfirmationEmailTemplateId; // use default if none is provided if (emailTemplateId == 0) { emailTemplateId = AbleContext.Current.Store.Settings.ContactUsConfirmationEmailTemplateId; } EmailTemplate template = EmailTemplateDataSource.Load(emailTemplateId); if (template != null) { template.Parameters.Add("user", AbleContext.Current.User); template.Parameters.Add("store", AbleContext.Current.Store); try { // populate the email for anonymous user account, it is needed for email message generation ('customer' parameter) if (AbleContext.Current.User.IsAnonymousOrGuest) { AbleContext.Current.User.Email = Email.Text; } MailMessage[] messages = template.GenerateMailMessages(); foreach (MailMessage msg in messages) { msg.To.Clear(); msg.To.Add(new MailAddress(this.Email.Text)); EmailClient.Send(msg); } FailureMessage.Visible = false; SuccessMessage.Visible = true; } catch (Exception exp) { Logger.Error("ContactUs Control Exception: " + Environment.NewLine + exp.Message); FailureMessage.Visible = true; SuccessMessage.Visible = false; } MessagePanel.Visible = true; FAQFormPanel.Visible = false; } }
/// <summary> /// Processes emails for the given order status using the given parameters /// </summary> /// <param name="orderStatusId">ID for the OrderStatus for which to process the emails</param> /// <param name="parameters">The parameters to be used in nVelocity email templates</param> public static void ProcessEmails(int orderStatusId, Hashtable parameters) { parameters["store"] = Token.Instance.Store; //NEED TO GET THE EMAIL TEMPLATES FOR THE ORDER STATUS EmailTemplateCollection emailTemplates = EmailTemplateDataSource.LoadForOrderStatus(orderStatusId); foreach (EmailTemplate template in emailTemplates) { if (template != null) { foreach (string key in parameters.Keys) { template.Parameters[key] = parameters[key]; } template.Send(); } } }
protected void Page_Init(object sender, EventArgs e) { // LOCATE THE TEMPLATE TO EDIT _EmailTemplateId = AlwaysConvert.ToInt(Request.QueryString["EmailTemplateId"]); _EmailTemplate = EmailTemplateDataSource.Load(_EmailTemplateId); if (_EmailTemplate == null) { Response.Redirect("Default.aspx"); } Caption.Text = string.Format(Caption.Text, _EmailTemplate.Name); // LOAD TRIGGERS SELECT BOX InitTriggerGrid(); MailFormat.Attributes.Add("onchange", "$get('" + MessageHtml.ClientID + "').style.visibility=(this.selectedIndex==0?'visible':'hidden');"); MessageHtml.OnClientClick = "if(/^\\s*#.*?\\n/gm.test($get('" + Message.ClientID + "').value)){if(!confirm('WARNING: HTML editor may corrupt NVelocity script if you make changes in WYSIWYG mode. Continue?'))return false;}"; AbleCommerce.Code.PageHelper.SetHtmlEditor(Message, MessageHtml); //INITIALIZE FORM ON FIRST VISIT if (!Page.IsPostBack) { Name.Text = _EmailTemplate.Name; FromAddress.Text = _EmailTemplate.FromAddress; ToAddress.Text = _EmailTemplate.ToAddress; CCAddress.Text = _EmailTemplate.CCList; BCCAddress.Text = _EmailTemplate.BCCList; FromAddress.Text = _EmailTemplate.FromAddress; Subject.Text = _EmailTemplate.Subject; Message.Text = _EmailTemplate.Body; MailFormat.SelectedIndex = (_EmailTemplate.IsHTML ? 0 : 1); foreach (GridViewRow row in TriggerGrid.Rows) { int eventId = AlwaysConvert.ToInt(TriggerGrid.DataKeys[row.RowIndex].Value); if (_EmailTemplate.Triggers.IndexOf(_EmailTemplateId, eventId) > -1) { CheckBox selected = row.FindControl("Selected") as CheckBox; if (selected != null) { selected.Checked = true; } } } } }
/// <summary> /// Generates a copy of the indicated item. /// </summary> /// <param name="emailTemplateId">The id of the item to copy.</param> /// <param name="deepCopy">If true, all related child data for this item is copied. If false, only the base item is copied.</param> /// <returns>A copy of the item</returns> /// <remarks>The returned copy has not been persisted to the database, you must call Save method to persist the new item.</remarks> public static EmailTemplate Copy(int emailTemplateId, bool deepCopy) { EmailTemplate copy = EmailTemplateDataSource.Load(emailTemplateId); if (copy != null) { if (deepCopy) { //LOAD THE CHILD COLLECTIONS AND RESET foreach (EmailTemplateTrigger trigger in copy.Triggers) { trigger.EmailTemplateId = 0; } } copy.EmailTemplateId = 0; return(copy); } return(null); }
protected void Page_Init(object sender, EventArgs e) { InitTriggerGrid(); MailFormat.Attributes.Add("onchange", "$get('" + MessageHtml.ClientID + "').style.visibility=(this.selectedIndex==0?'visible':'hidden');"); MessageHtml.OnClientClick = "if(/^\\s*#.*?\\n/gm.test($get('" + Message.ClientID + "').value)){if(!confirm('WARNING: HTML editor may corrupt NVelocity script if you make changes in WYSIWYG mode. Continue?'))return false;}"; AbleCommerce.Code.PageHelper.SetHtmlEditor(Message, MessageHtml); if (!Page.IsPostBack) { EmailTemplate template = EmailTemplateDataSource.Load(AlwaysConvert.ToInt(Request.QueryString["EmailTemplateId"])); if (template == null) { // EXPECTED CASE, NEW TEMPLATE FromAddress.Text = "merchant"; } else { // LOAD (FOR NEW COPY) Name.Text = StringHelper.Truncate("Copy of " + template.Name, 100); FromAddress.Text = template.FromAddress; ToAddress.Text = template.ToAddress; CCAddress.Text = template.CCList; BCCAddress.Text = template.BCCList; FromAddress.Text = template.FromAddress; Subject.Text = template.Subject; Message.Text = template.Body; MailFormat.SelectedIndex = (template.IsHTML ? 0 : 1); foreach (GridViewRow row in TriggerGrid.Rows) { int eventId = AlwaysConvert.ToInt(TriggerGrid.DataKeys[row.RowIndex].Value); if (template.Triggers.IndexOf(template.Id, eventId) > -1) { CheckBox selected = row.FindControl("Selected") as CheckBox; if (selected != null) { selected.Checked = true; } } } } } }
protected void Page_Init(object sender, EventArgs e) { // WARN IF SMTP SERVER NOT CONFIGURED if (IsSmtpServerConfigured()) { // FIND THE DATASOURCE FOR THE EMAILS LocateRecipientSource(); // INITIALIZE THE EMAIL TEMPLATES EmailTemplates.DataSource = EmailTemplateDataSource.LoadAll("Name"); EmailTemplates.DataBind(); EmailTemplates.Attributes.Add("onchange", "if(!confirm('Changing the email template will reset any message text entered below. Continue?')) return false;"); // INITIALIZE THE MAIL FORM ToAddress.Text = GetRecipientList(); if (!Page.IsPostBack) { FromAddress.Text = AbleContext.Current.Store.Settings.DefaultEmailAddress; } MailFormat.Attributes.Add("onchange", "$get('" + MessageHtml.ClientID + "').style.visibility=(this.selectedIndex==0?'visible':'hidden');"); MessageHtml.OnClientClick = "if(/^\\s*#.*?\\n/gm.test($get('" + Message.ClientID + "').value)){if(!confirm('WARNING: HTML editor may corrupt NVelocity script if you make changes in WYSIWYG mode. Continue?'))return false;}"; AbleCommerce.Code.PageHelper.SetHtmlEditor(Message, MessageHtml); // SHOW/hide the restock notification subscriptions removal option trRemoveNotificationSubscriptions.Visible = _RestockNotifyList != null; } else { // SMTP IS NOT CONFIGURED ComposePanel.Visible = false; PreviewPanel.Visible = false; ConfirmationPanel.Visible = false; SmtpErrorPanel.Visible = true; } // SET CANCEL LINKS TO CALLING PAGE OKButton.NavigateUrl = GetReturnUrl(); CancelLink.NavigateUrl = GetReturnUrl(); }
/// <summary> /// Sets the serial key for this digital good /// </summary> /// <param name="serialKeyData">Serial key to set</param> /// <param name="sendFulfillmentEmail">If <b>true</b> fulfillment email is sent</param> public void SetSerialKey(string serialKeyData, bool sendFulfillmentEmail) { if (IsSerialKeyAcquired()) { if (this.SerialKeyData == serialKeyData) { return; } } this.SerialKeyData = serialKeyData; if (sendFulfillmentEmail && !string.IsNullOrEmpty(serialKeyData)) { //initiate fulfillment email EmailTemplate template = EmailTemplateDataSource.Load(DigitalGood.FulfillmentEmailId); if (template != null) { SendEmail(template); } } }
private static void RestockNotify(bool sendEmails, Product product, ProductVariant variant) { // send emails try { IList <RestockNotify> list = null; if (variant != null) { list = RestockNotifyDataSource.LoadForProductVariant(variant.Id); } else { list = RestockNotifyDataSource.LoadForProduct(product.Id); } foreach (RestockNotify notification in list) { // load email template and send EmailTemplate emailTemplate = EmailTemplateDataSource.Load(AbleContext.Current.Store.Settings.InventoryRestockNotificationEmailTemplateId); if (emailTemplate != null) { emailTemplate.Parameters["recipient"] = notification.Email; emailTemplate.Parameters["product"] = product; emailTemplate.Parameters["variant"] = variant; emailTemplate.Parameters["store"] = AbleContext.Current.Store; emailTemplate.Send(true); } } // remove records list.DeleteAll(); } catch (Exception ex) { Logger.Error("Error sending restock notification email", ex); } }
protected void EmailTemplates_SelectedIndexChanged(Object sender, EventArgs e) { int emailTemplateId = AlwaysConvert.ToInt(EmailTemplates.SelectedValue); EmailTemplate emailTemplate = EmailTemplateDataSource.Load(emailTemplateId); if (emailTemplate != null) { emailTemplate.Parameters.Add("store", AbleContext.Current.Store); MailAddress fromAddress = emailTemplate.ParseAddress(emailTemplate.FromAddress); CCAddress.Text = emailTemplate.CCList; BCCAddress.Text = emailTemplate.BCCList; FromAddress.Text = fromAddress != null ? fromAddress.Address : emailTemplate.FromAddress; Subject.Text = emailTemplate.Subject; MailFormat.SelectedIndex = emailTemplate.IsHTML ? 0 : 1; Message.Text = emailTemplate.Body; } else { FromAddress.Text = AbleContext.Current.Store.Settings.DefaultEmailAddress; Subject.Text = string.Empty; Message.Text = string.Empty; } }
protected void Page_Load(object sender, EventArgs e) { _EmailListId = AlwaysConvert.ToInt(Request.QueryString["EmailListId"]); _EmailList = EmailListDataSource.Load(_EmailListId); if (_EmailList != null) { AbleCommerce.Code.PageHelper.ConvertEnterToTab(Name); if (!Page.IsPostBack) { Name.Text = _EmailList.Name; IsPublic.Checked = _EmailList.IsPublic; Description.Text = _EmailList.Description; ListItem item = SignupRule.Items.FindByValue(_EmailList.SignupRule.ToString()); if (item != null) { SignupRule.SelectedIndex = SignupRule.Items.IndexOf(item); } IList <EmailTemplate> emailTemplates = EmailTemplateDataSource.LoadAll(); foreach (EmailTemplate template in emailTemplates) { ListItem li = new ListItem(template.Name, template.Id.ToString()); SignupEmailTemplate.Items.Add(li); } item = SignupEmailTemplate.Items.FindByValue(_EmailList.SignupEmailTemplateId.ToString()); if (item != null) { SignupEmailTemplate.SelectedIndex = SignupEmailTemplate.Items.IndexOf(item); } } } else { this.Controls.Clear(); } }
protected void Page_Load(object sender, EventArgs e) { Store store = AbleContext.Current.Store; StoreSettingsManager settings = store.Settings; IList <EmailTemplate> emailTemplates = EmailTemplateDataSource.LoadAll(); if (!Page.IsPostBack) { foreach (EmailTemplate template in emailTemplates) { EnrollmentEmail.Items.Add(new ListItem(template.Name, template.Id.ToString())); PaymentRemindersEmail.Items.Add(new ListItem(template.Name, template.Id.ToString())); SubscriptionExpirationEmailTemplate.Items.Add(new ListItem(template.Name, template.Id.ToString())); CancellationEmail.Items.Add(new ListItem(template.Name, template.Id.ToString())); ExpiredEmail.Items.Add(new ListItem(template.Name, template.Id.ToString())); SubscriptionChangedEmail.Items.Add(new ListItem(template.Name, template.Id.ToString())); } ROEnabledPanel.Visible = settings.ROCreateNewOrdersEnabled; RONotEnabledPanel.Visible = !ROEnabledPanel.Visible; EnableInstructions.Visible = false; LblEnabling.Visible = false; // CreateNewOrders.Checked = settings.ROCreateNewOrdersEnabled; ListItem item = new ListItem(); CreateNextOrderDays.Text = settings.ROCreateNextOrderDays.ToString(); SubscriptionChangesDays.Text = settings.ROSubscriptionChangesDays.ToString(); SubscriptionsCancellationDays.Text = settings.ROSubscriptionCancellationDays.ToString(); EnrollmentEmail.ClearSelection(); item = EnrollmentEmail.Items.FindByValue(settings.ROSubscriptionEnrollmentEmailTemplateId.ToString()); if (item != null) { item.Selected = true; } PaymentReminderDays.Text = settings.ROPaymentReminderIntervalDays.ToString(); PaymentRemindersEmail.ClearSelection(); item = PaymentRemindersEmail.Items.FindByValue(settings.ROPaymentReminderEmailTemplateId.ToString()); if (item != null) { item.Selected = true; } /* Currently we do not have a separate email sending for failure of subscription payment * item = PaymnetFailureEmail.Items.FindByValue(settings.ROPaymentFailEmailTemplateId.ToString()); * if (item != null) item.Selected = true; */ if (!string.IsNullOrEmpty(settings.ROExpirationReminderEmailDays)) { ExpirationReminderEmailIntervalDays.Text = settings.ROExpirationReminderEmailDays.ToString(); } SubscriptionExpirationEmailTemplate.ClearSelection(); item = SubscriptionExpirationEmailTemplate.Items.FindByValue(settings.ROExpirationReminderEmailTemplateId.ToString()); if (item != null) { item.Selected = true; } SubscriptionChangedEmail.ClearSelection(); item = SubscriptionChangedEmail.Items.FindByValue(settings.ROSubscriptionUpdatedEmailTemplateId.ToString()); if (item != null) { item.Selected = true; } CancellationEmail.ClearSelection(); item = CancellationEmail.Items.FindByValue(settings.ROSubscriptionCancellationEmailTemplateId.ToString()); if (item != null) { item.Selected = true; } ExpiredEmail.ClearSelection(); item = ExpiredEmail.Items.FindByValue(settings.ROSubscriptionExpiredEmailTemplateId.ToString()); if (item != null) { item.Selected = true; } IgnoreGatewayForPartialRecurSupport.Checked = settings.ROIgnoreGatewayForPartialRecurSupport; CreateOrdersForDetachedPayments.Checked = settings.ROCreateOrdersForDetachedPayments; trCreateOrdersForDetachedPayments.Visible = false; RecurringPaymentsWithoutCVVAllowed.Checked = settings.RORecurringPaymentsWithoutCVVAllowed; // SettingsPanel.Visible = CreateNewOrders.Checked; } }
private void InitializeForm(bool forceRefresh) { int digitalGoodId = AlwaysConvert.ToInt(Request.QueryString["DigitalGoodId"]); _DigitalGood = DigitalGoodDataSource.Load(digitalGoodId); if (_DigitalGood == null) { Response.Redirect(CancelButton.NavigateUrl); } RenameFileExtensions.Text = AbleContext.Current.Store.Settings.FileExt_DigitalGoods; if (!Page.IsPostBack || forceRefresh) { Name.Text = _DigitalGood.Name; FileName.Text = _DigitalGood.FileName; MediaKey.Text = _DigitalGood.MediaKey; ListItem item = ActivationMode.Items.FindByValue(_DigitalGood.ActivationModeId.ToString()); if (item != null) { item.Selected = true; } if (_DigitalGood.MaxDownloads > 0) { MaxDownloads.Text = _DigitalGood.MaxDownloads.ToString(); } int days, hours, minutes; DigitalGood.ParseTimeout(_DigitalGood.ActivationTimeout, out days, out hours, out minutes); if (days > 0) { ActivationTimeoutDays.Text = days.ToString(); } if (hours > 0) { ActivationTimeoutHours.Text = hours.ToString(); } if (minutes > 0) { ActivationTimeoutMinutes.Text = minutes.ToString(); } DigitalGood.ParseTimeout(_DigitalGood.DownloadTimeout, out days, out hours, out minutes); if (days > 0) { DownloadTimeoutDays.Text = days.ToString(); } if (hours > 0) { DownloadTimeoutHours.Text = hours.ToString(); } if (minutes > 0) { DownloadTimeoutMinutes.Text = minutes.ToString(); } //bind license agreements LicenseAgreement.DataSource = LicenseAgreementDataSource.LoadAll(); LicenseAgreement.DataBind(); item = LicenseAgreement.Items.FindByValue(_DigitalGood.LicenseAgreementId.ToString()); if (item != null) { LicenseAgreement.SelectedIndex = LicenseAgreement.Items.IndexOf(item); } item = LicenseAgreementMode.Items.FindByValue(_DigitalGood.LicenseAgreementModeId.ToString()); if (item != null) { LicenseAgreementMode.SelectedIndex = LicenseAgreementMode.Items.IndexOf(item); } // BIND GROUPs Groups.DataBind(); Groups.ClearSelection(); foreach (DigitalGoodGroup dgg in _DigitalGood.DigitalGoodGroups) { item = Groups.Items.FindByValue(dgg.Group.Id.ToString()); if (item != null) { item.Selected = true; } } //bind readmes Readme.DataSource = ReadmeDataSource.LoadAll(); Readme.DataBind(); item = Readme.Items.FindByValue(_DigitalGood.ReadmeId.ToString()); if (item != null) { Readme.SelectedIndex = Readme.Items.IndexOf(item); } EnableSerialKeys.Checked = _DigitalGood.EnableSerialKeys; // INITIALIZE SERIAL KEY PROVIDERS KeySource.Items.Clear(); KeySource.Items.Add(new ListItem("Manual Entry", "0")); // ADD PROVIDERS IList <ISerialKeyProvider> providers = SerialKeyProviderDataSource.GetSerialKeyProviders(); foreach (ISerialKeyProvider provider in providers) { string classId = Misc.GetClassId(provider.GetType()); ListItem providerItem; // (BUG # 8347) ABLECOMMERCE DEFAULT KEY PROVIDER SHOULD BE NAMED AS "Managed List of Keys" if (provider.GetType() == typeof(DefaultSerialKeyProvider)) { providerItem = new ListItem("Managed List of Keys", classId); } else { providerItem = new ListItem(provider.Name, classId); } KeySource.Items.Add(providerItem); } //SELECT CORRECT PROVIDER if (_DigitalGood.SerialKeyProviderId != null) { ListItem providerItem = KeySource.Items.FindByValue(_DigitalGood.SerialKeyProviderId); if (providerItem != null) { KeySource.SelectedIndex = KeySource.Items.IndexOf(providerItem); } } IList <EmailTemplate> templates = EmailTemplateDataSource.LoadAll(); foreach (EmailTemplate template in templates) { ListItem activationItem = new ListItem(template.Name, template.Id.ToString()); ListItem fulfillItem = new ListItem(template.Name, template.Id.ToString()); if (_DigitalGood.ActivationEmailId == template.Id) { activationItem.Selected = true; } if (_DigitalGood.FulfillmentEmailId == template.Id) { fulfillItem.Selected = true; } ActivationEmailTemplateList.Items.Add(activationItem); FulfillmentEmailTemplateList.Items.Add(fulfillItem); } if (_DigitalGood.FulfillmentMode == CommerceBuilder.DigitalDelivery.FulfillmentMode.Manual) { FulfillmentMode.SelectedIndex = 0; } else if (_DigitalGood.FulfillmentMode == CommerceBuilder.DigitalDelivery.FulfillmentMode.OnOrder) { FulfillmentMode.SelectedIndex = 1; } else { FulfillmentMode.SelectedIndex = 2; } ToggleConfigureProvider(); } }
protected void Save() { bool newAffilate = false; if (this.Affiliate == null) { this.Affiliate = new CommerceBuilder.Marketing.Affiliate(); newAffilate = true; } this.Affiliate.Name = Name.Text; this.Affiliate.WebsiteUrl = WebsiteUrl.Text; this.Affiliate.Email = Email.Text; this.Affiliate.FirstName = FirstName.Text; this.Affiliate.LastName = LastName.Text; this.Affiliate.Address1 = Address1.Text; this.Affiliate.Address2 = Address2.Text; this.Affiliate.City = City.Text; this.Affiliate.Province = (Province.Visible ? StringHelper.StripHtml(Province.Text) : Province2.SelectedValue); this.Affiliate.PostalCode = PostalCode.Text; this.Affiliate.CountryCode = Country.SelectedValue; this.Affiliate.PhoneNumber = Phone.Text; this.Affiliate.FaxNumber = FaxNumber.Text; this.Affiliate.MobileNumber = MobileNumber.Text; this.Affiliate.Company = Company.Text; this.Affiliate.ReferralPeriodId = (byte)settings.AffiliatePersistence; this.Affiliate.ReferralPeriod = settings.AffiliatePersistence; this.Affiliate.ReferralDays = settings.AffiliateReferralPeriod; this.Affiliate.CommissionIsPercent = settings.AffiliateCommissionIsPercent; this.Affiliate.CommissionOnTotal = settings.AffiliateCommissionOnTotal; this.Affiliate.CommissionRate = (decimal)settings.AffiliateCommissionRate; // CREATE NEW AFFILIATE GROUP if (newAffilate) { Group group = new Group(); group.Name = string.Format("Affiliate [{0}]", this.Affiliate.Name); group.Save(); AbleContext.Current.User.UserGroups.Add(new UserGroup(AbleContext.Current.User, group)); AbleContext.Current.User.Save(); this.Affiliate.Group = group; } this.Affiliate.Save(); // SAVE TAXID FIELD User user = AbleContext.Current.User; user.TaxExemptionReference = TaxId.Text; user.Save(); // SEND AFFILIATE REGISTRATION EMAIL IF SELF SIGNUP IS ENABLED if (settings.AffiliateAllowSelfSignup && newAffilate) { // SEND THE AFFILIATE SELF-SIGNUP EMAIL TO MERCHANT SendAffiliateEmail(); // SEND THE AFFILIATE SELF-SIGNUP CONFIRMATION EMAIL TO CUSTOMER int emailTemplateId = settings.AffiliateRegistrationEmailTemplateId; EmailTemplate template = EmailTemplateDataSource.Load(emailTemplateId); if (template != null) { template.Parameters.Add("store", AbleContext.Current.Store); template.Parameters.Add("affiliate", this.Affiliate); template.Send(); } } if (newAffilate) { Response.Redirect("~/Members/MyAffiliateAccount.aspx"); } SavedMessage.Visible = true; }
protected void Page_Load(object sender, System.EventArgs e) { Store store = AbleContext.Current.Store; StoreSettingsManager settings = store.Settings; // FULLTEXT SEARCH bool ftsIsInstalled = KeywordSearchHelper.IsFullTextSearchInstalled(false); bool ftsIsEnabled = false; if (ftsIsInstalled) { ftsIsEnabled = KeywordSearchHelper.IsFullTextSearchEnabled(false); if (!ftsIsEnabled) { // ATTEMPT TO ENABLE FULLTEXT SEARCH IF POSSIBLE KeywordSearchHelper.EnableFullTextSearch(false); ftsIsEnabled = KeywordSearchHelper.IsFullTextSearchEnabled(false); } } ListItem sqlFtsProviderItem = SearchProvider.Items.FindByValue("SqlFtsSearchProvider"); if (sqlFtsProviderItem != null && !(ftsIsInstalled && ftsIsEnabled)) { SearchProvider.Items.Remove(sqlFtsProviderItem); } bool authorizeNetCIMEnabled = PaymentGatewayDataSource.GetPaymentGatewayIdByClassId("CommerceBuilder.Payments.Providers.AuthorizeNetCIM.AuthNetCIMProvider, CommerceBuilder.AuthorizeNetCIM") > 0; if (!authorizeNetCIMEnabled) { tdPaymentStorage.Attributes.Add("class", "inactive"); PaymentStorageLabel.Text = "Only available with Authorize.Net CIM gateway"; } PaymentStorage.Enabled = authorizeNetCIMEnabled; if (!Page.IsPostBack) { // GENERAL StoreName.Text = store.Name; if (AbleContext.Current.User.IsSecurityAdmin) { StoreUrl.Text = store.StoreUrl; StoreUrlLiteral.Visible = false; } else { StoreUrlLiteral.Text = store.StoreUrl; StoreUrl.Visible = false; } if (!string.IsNullOrEmpty(settings.SiteDisclaimerMessage)) { SiteDisclaimerMessage.Text = settings.SiteDisclaimerMessage; } // VOLUME DISCOUNTS DiscountMode.SelectedIndex = (int)store.VolumeDiscountMode; // INVENTORY EnableInventory.Checked = settings.EnableInventory; InventoryPanel.Visible = settings.EnableInventory; CurrentInventoryDisplayMode.SelectedIndex = settings.InventoryDisplayDetails ? 1 : 0; InStockMessage.Text = settings.InventoryInStockMessage; OutOfStockMessage.Text = settings.InventoryOutOfStockMessage; InventoryAvailabilityMessage.Text = settings.InventoryAvailabilityMessage; RestockNotificationLink.Text = settings.InventoryRestockNotificationLink; IList <EmailTemplate> emailTemplates = EmailTemplateDataSource.LoadAll(); foreach (EmailTemplate template in emailTemplates) { RestockNotificationEmail.Items.Add(new ListItem(template.Name, template.Id.ToString())); } RestockNotificationEmail.ClearSelection(); ListItem item = RestockNotificationEmail.Items.FindByValue(settings.InventoryRestockNotificationEmailTemplateId.ToString()); if (item != null) { item.Selected = true; } // ORDER SETTINGS UpdateNextOrderNumber(store); OrderIdIncrement.Text = store.OrderIdIncrement.ToString(); OrderMinAmount.Text = (settings.OrderMinimumAmount > 0) ? settings.OrderMinimumAmount.ToString() : string.Empty; OrderMaxAmount.Text = (settings.OrderMaximumAmount > 0) ? settings.OrderMaximumAmount.ToString() : string.Empty; EnableOnePageCheckout.Checked = settings.EnableOnePageCheckout; // GUEST CHECKOUT OPTIONS AllowGuestCheckout.Checked = settings.AllowAnonymousCheckout; LimitedGuestCheckout.Checked = !settings.AllowAnonymousCheckoutForDigitalGoods && settings.AllowAnonymousCheckout; DisableGuestCheckout.Checked = !settings.AllowAnonymousCheckout; // CHECKOUT PAYMENT SETTINGS AllowOnlyFullPayments.Checked = !settings.AcceptOrdersWithInvalidPayment; IgnoreFailedPayments.Checked = settings.AcceptOrdersWithInvalidPayment; AllowPartialPaymnets.Checked = settings.EnablePartialPaymentCheckouts && !settings.AcceptOrdersWithInvalidPayment; EnableShipMessage.Checked = settings.EnableShipMessage; EnableShipToMultipleAddresses.Checked = settings.EnableShipToMultipleAddresses; if (!string.IsNullOrEmpty(settings.CheckoutTermsAndConditions)) { CheckoutTerms.Text = settings.CheckoutTermsAndConditions; } EnableOrderNotes.Checked = settings.EnableCustomerOrderNotes; // UNITS WeightUnit.DataSource = EnumToHashtable(typeof(CommerceBuilder.Shipping.WeightUnit)); WeightUnit.DataTextField = "Key"; WeightUnit.DataValueField = "Value"; WeightUnit.DataBind(); MeasurementUnit.DataSource = EnumToHashtable(typeof(CommerceBuilder.Shipping.MeasurementUnit)); MeasurementUnit.DataTextField = "Key"; MeasurementUnit.DataValueField = "Value"; MeasurementUnit.DataBind(); item = WeightUnit.Items.FindByValue(store.WeightUnitId.ToString()); if (item != null) { item.Selected = true; } item = MeasurementUnit.Items.FindByValue(store.MeasurementUnitId.ToString()); if (item != null) { item.Selected = true; } BindTimeZone(); PostalCodeCountries.Text = settings.PostalCodeCountries; // PRODUCTS PURCHASING ProductPurchasingDisabled.Checked = settings.ProductPurchasingDisabled; // WISHLISTS ENABLED WishlistsEnabled.Checked = settings.WishlistsEnabled; // SEARCH SETTINGS EnableWishlistSearch.Checked = settings.WishlistSearchEnabled; MinimumSearchLength.Text = settings.MinimumSearchLength.ToString(); PopularSearchThreshold.Text = settings.PopularSearchThreshold.ToString(); CategorySearchDisplayLimit.Text = settings.CategorySearchDisplayLimit.ToString(); item = SearchProvider.Items.FindByValue(ApplicationSettings.Instance.SearchProvider); if (item != null) { item.Selected = true; } // RESTRICT STORE ACCESS ListItem option = RestrictStoreAccessOptions.Items.FindByValue(settings.RestrictStoreAccess.ToString()); if (option != null) { option.Selected = true; } IList <Group> allGroups = GroupDataSource.LoadForStore(AbleContext.Current.StoreId, "Name ASC"); IList <Group> nonAdminGroups = allGroups.FindAll(grp => !grp.IsInRole(Role.AllAdminRoles)) as IList <Group>; IList <Group> authorizedGroups = allGroups.FindAll(grp => grp.IsInRole(Role.CustomerRoles)); AuthorizedGroups.DataSource = nonAdminGroups as IList <Group>; AuthorizedGroups.DataBind(); foreach (ListItem groupItem in AuthorizedGroups.Items) { int groupId = AlwaysConvert.ToInt(groupItem.Value); foreach (Group group in authorizedGroups) { if (groupId == group.Id) { groupItem.Selected = true; break; } } } PaymentStorage.Checked = settings.EnablePaymentProfilesStorage; EnableHtmlEditor.Checked = settings.EnableWysiwygEditor; } }