Ejemplo n.º 1
0
        private void SaveSettings()
        {
            Store store = AbleContext.Current.Store;
            StoreSettingsManager settings = store.Settings;

            store.Name = StoreName.Text;
            store.VolumeDiscountMode       = (VolumeDiscountMode)DiscountMode.SelectedIndex;
            store.WeightUnit               = (WeightUnit)AlwaysConvert.ToInt(WeightUnit.SelectedValue);
            store.MeasurementUnit          = (MeasurementUnit)AlwaysConvert.ToInt(MeasurementUnit.SelectedValue);
            settings.TimeZoneCode          = TimeZoneOffset.SelectedValue;
            settings.TimeZoneOffset        = GetTimeZoneOffset(TimeZoneOffset.SelectedValue);
            settings.PostalCodeCountries   = PostalCodeCountries.Text.Replace(" ", string.Empty);
            settings.SiteDisclaimerMessage = SiteDisclaimerMessage.Text.Trim();

            // INVENTORY
            store.Settings.EnableInventory                       = EnableInventory.Checked;
            settings.InventoryDisplayDetails                     = CurrentInventoryDisplayMode.SelectedIndex == 1;
            settings.InventoryInStockMessage                     = InStockMessage.Text;
            settings.InventoryOutOfStockMessage                  = OutOfStockMessage.Text;
            settings.InventoryAvailabilityMessage                = InventoryAvailabilityMessage.Text;
            settings.InventoryRestockNotificationLink            = RestockNotificationLink.Text;
            settings.InventoryRestockNotificationEmailTemplateId = AlwaysConvert.ToInt(RestockNotificationEmail.SelectedValue);

            // ORDERS
            short increment = AlwaysConvert.ToInt16(OrderIdIncrement.Text);

            if (increment >= 1)
            {
                store.OrderIdIncrement = increment;
            }
            settings.CheckoutTermsAndConditions     = CheckoutTerms.Text.Trim();
            settings.OrderMinimumAmount             = AlwaysConvert.ToDecimal(OrderMinAmount.Text);
            settings.OrderMaximumAmount             = AlwaysConvert.ToDecimal(OrderMaxAmount.Text);
            settings.AcceptOrdersWithInvalidPayment = IgnoreFailedPayments.Checked;
            settings.EnablePartialPaymentCheckouts  = AllowPartialPaymnets.Checked;

            settings.EnableOnePageCheckout  = EnableOnePageCheckout.Checked;
            settings.AllowAnonymousCheckout = AllowGuestCheckout.Checked || LimitedGuestCheckout.Checked;
            settings.AllowAnonymousCheckoutForDigitalGoods = !LimitedGuestCheckout.Checked;
            settings.EnableCustomerOrderNotes      = EnableOrderNotes.Checked;
            settings.EnableShipMessage             = EnableShipMessage.Checked;
            settings.EnableShipToMultipleAddresses = EnableShipToMultipleAddresses.Checked;

            // PRODUCTS PURCHASING
            settings.ProductPurchasingDisabled = ProductPurchasingDisabled.Checked;

            // WISHLISTS ENABLED
            settings.WishlistsEnabled = WishlistsEnabled.Checked;

            // RESTRICT STORE ACCESS
            settings.RestrictStoreAccess = (AccessRestrictionType)Enum.Parse(typeof(AccessRestrictionType), RestrictStoreAccessOptions.SelectedValue);
            if (settings.RestrictStoreAccess == AccessRestrictionType.AuthorizedGroupsOnly)
            {
                IList <Group> allGroups      = GroupDataSource.LoadForStore(AbleContext.Current.StoreId, "Name ASC");
                IList <Group> nonAdminGroups = allGroups.FindAll(grp => !grp.IsInRole(Role.AllAdminRoles)) as IList <Group>;

                // remove permissions for all non-admin groups
                Role authorizedUserRole = RoleDataSource.LoadForRolename(Role.CustomerRoles[0]);
                foreach (Group group in nonAdminGroups)
                {
                    group.Roles.Remove(authorizedUserRole);
                }
                foreach (ListItem item in AuthorizedGroups.Items)
                {
                    if (item.Selected)
                    {
                        int groupId = AlwaysConvert.ToInt(item.Value);
                        foreach (Group group in nonAdminGroups)
                        {
                            // add permissions for selected groups
                            if (groupId == group.Id)
                            {
                                group.Roles.Add(authorizedUserRole);
                            }
                        }
                    }
                }
                nonAdminGroups.Save();
            }

            // SEARCH SETTINGS
            settings.WishlistSearchEnabled        = EnableWishlistSearch.Checked;
            settings.MinimumSearchLength          = AlwaysConvert.ToInt(MinimumSearchLength.Text);
            settings.PopularSearchThreshold       = AlwaysConvert.ToInt(PopularSearchThreshold.Text);
            settings.CategorySearchDisplayLimit   = AlwaysConvert.ToInt(CategorySearchDisplayLimit.Text);
            settings.EnablePaymentProfilesStorage = PaymentStorage.Checked;

            // HTML EDITOR SETTING
            settings.EnableWysiwygEditor = EnableHtmlEditor.Checked;

            store.Save();

            // CHECK NEXT ORDER NUMBER
            if (OrigNextOrderNumber.Value != NextOrderId.Text)
            {
                // NEXT ORDER NUMBER WAS UPDATED
                store.NextOrderId         = StoreDataSource.SetNextOrderNumber(AlwaysConvert.ToInt(NextOrderId.Text));
                OrigNextOrderNumber.Value = store.NextOrderId.ToString();
            }
            else
            {
                // DETERMINE CORRECT VALUE FOR NEXT ORDER NUMBER
                OrigNextOrderNumber.Value = StoreDataSource.GetNextOrderNumber(false).ToString();
            }
            OrderIdIncrement.Text = store.OrderIdIncrement.ToString();
            UpdateNextOrderNumber(store);
            store.Save();

            if (SearchProvider.SelectedValue != ApplicationSettings.Instance.SearchProvider)
            {
                ApplicationSettings.Instance.SearchProvider = SearchProvider.SelectedValue;
                ApplicationSettings.Instance.Save();

                if (SearchProvider.SelectedValue == "SqlFtsSearchProvider")
                {
                    bool fullTextSearch = false;
                    // FTS IS TURNED ON, MAKE SURE THE CATALOG IS AVAILABLE
                    if (KeywordSearchHelper.EnsureCatalog())
                    {
                        // CATALOG IS FOUND, MAKE SURE INDEXES ARE AVAILABLE
                        if (KeywordSearchHelper.EnsureIndexes())
                        {
                            // FTS CAN BE SAFELY ENABLED
                            fullTextSearch = true;
                        }
                    }

                    if (!fullTextSearch)
                    {
                        KeywordSearchHelper.RemoveCatalog();
                    }
                }

                if (SearchProvider.SelectedValue == "LuceneSearchProvider")
                {
                    AbleContext.Resolve <IFullTextSearchService>().AsyncReindex();
                }
            }
        }
Ejemplo n.º 2
0
        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;
            }
        }