public ActionResult Configure(PromoConfigureModel model, FormCollection form) { if (!ModelState.IsValid) { return Configure(); } bool enabledChanged = !_promoSettings.Equals(model.Enabled); //save settings // general _promoSettings.Enabled = model.Enabled; _promoSettings.LogMessages = model.LogMessages; _promoSettings.ShowHelperMessages = model.ShowHelperMessages; // Connection Details _promoSettings.CompanyKey = model.CompanyKey; _promoSettings.PromoImportEndpointAddress = model.PromoImportServiceEndpointAddress; _promoSettings.PromoExportEndpointAddress = model.PromoExportServiceEndpointAddress; _promoSettings.BasketRequestEndpointAddress = model.BasketRequestServiceEndpointAddress; _promoSettings.StoreId = model.StoreId; // Settings no longer updated via the Config area. //_promoSettings.ProductPictureSize = model.ProductPictureSize; //_promoSettings.CurrencyId = model.CurrencyId; //_promoSettings.BatchSize = model.BatchSize; // Company and Store _promoSettings.StoreGroup = model.StoreGroup; _promoSettings.Channel = model.Channel; _promoSettings.SynchronizeCustomerRoles = model.SynchronizeCustomerRoles; _promoSettings.SynchronizeProducts = model.SynchronizeProducts; _promoSettings.SynchronizeShippingMethods = model.SynchronizeShippingMethods; _promoSettings.SynchronizeStores = model.SynchronizeStores; _promoSettings.SynchronizeCheckoutAttributes = model.SynchronizeCheckoutAttributes; _promoSettings.SynchronizeCurrencies = model.SynchronizeCurrencies; _promoSettings.UseSelectedCurrencyWhenSubmittingBaskets = model.UseSelectedCurrencyWhenSubmittingBaskets; _promoSettings.ShowMissedPromotions = model.ShowMissedPromotions; _promoSettings.ShowPromotionDetailsInBasket = model.ShowPromotionNameOption; _promoSettings.ServiceEndpointSelection = model.SelectedServicesEndPoint; bool doSyncNow = (_promoSettings.Enabled && !string.IsNullOrEmpty(_promoSettings.CompanyKey) && (model.SynchronizeAllWhenSaving || _promoSettings.InitialSetup)); bool isInitialSetup = _promoSettings.InitialSetup; if (doSyncNow && _promoSettings.InitialSetup) _promoSettings.InitialSetup = false; _settingService.SaveSetting(_promoSettings); string formKey = "checkbox_product_attribute"; var checkedProductAttributes = form[formKey] != null ? form[formKey].Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select(x => Convert.ToInt32(x)).ToList() : new List<int>(); var productAttributes = _productAttributeConfigService.RetrieveAll().ToList(); foreach (var productAttribute in productAttributes) { productAttribute.Enabled = checkedProductAttributes.Contains(productAttribute.Id); _productAttributeConfigService.Update(productAttribute); } if (enabledChanged) { // The enabled flag has changed - so go and find the scheduled task and enable/disable appropriately. ScheduleTask scheduleTask = _scheduleTaskService.GetTaskByType(PromoTaskNames.DataFeedTask); if (scheduleTask != null) { scheduleTask.Enabled = _promoSettings.Enabled; _scheduleTaskService.UpdateTask(scheduleTask); } scheduleTask = _scheduleTaskService.GetTaskByType(PromoTaskNames.PromoSyncTask); if (scheduleTask != null) { scheduleTask.Enabled = _promoSettings.Enabled; _scheduleTaskService.UpdateTask(scheduleTask); } } if (doSyncNow) QueueSyncNowItems(isInitialSetup); ModelState.Clear(); //redisplay the form return Configure(); }
private void SetupModelLists(PromoConfigureModel model) { //stores model.AvailableStores.Add(new SelectListItem() { Text = _localizationService.GetResource("Admin.Common.All"), Value = "0" }); foreach (var s in _storeService.GetAllStores()) model.AvailableStores.Add(new SelectListItem() { Text = s.Name, Value = s.Id.ToString() }); //currencies foreach (var c in _currencyService.GetAllCurrencies()) model.AvailableCurrencies.Add(new SelectListItem() { Text = c.Name, Value = c.Id.ToString() }); model.ServicesEndpointsList.Add(new SelectListItem() { Text = _localizationService.GetResource("Plugins.Misc.QixolPromo.ServiceEndpoint.Evaluation"), Value = SettingsEndpointAddress.EVALUATION_SERVICES.ToString() }); model.ServicesEndpointsList.Add(new SelectListItem() { Text = _localizationService.GetResource("Plugins.Misc.QixolPromo.ServiceEndpoint.Live"), Value = SettingsEndpointAddress.LIVE_SERVICES.ToString() }); #if DEBUG model.ServicesEndpointsList.Add(new SelectListItem() { Text = _localizationService.GetResource("Plugins.Misc.QixolPromo.ServiceEndpoint.Custom"), Value = SettingsEndpointAddress.CUSTOM_SERVICES.ToString() }); model.AllowCustomEndpoint = true; #endif model.ShowPromotionNameOptionsList.Add(new SelectListItem() { Text = _localizationService.GetResource("Plugins.Misc.QixolPromo.ShowPromoDetails.UserText"), Value = PromotionDetailsDisplayOptions.ShowEndUserText.ToString() }); model.ShowPromotionNameOptionsList.Add(new SelectListItem() { Text = _localizationService.GetResource("Plugins.Misc.QixolPromo.ShowPromoDetails.PromotionName"), Value = PromotionDetailsDisplayOptions.ShowPromotionName.ToString() }); model.ShowPromotionNameOptionsList.Add(new SelectListItem() { Text = _localizationService.GetResource("Plugins.Misc.QixolPromo.ShowPromoDetails.PromotionType"), Value = PromotionDetailsDisplayOptions.ShowPromotionType.ToString() }); model.ShowPromotionNameOptionsList.Add(new SelectListItem() { Text = _localizationService.GetResource("Plugins.Misc.QixolPromo.ShowPromoDetails.Empty"), Value = PromotionDetailsDisplayOptions.ShowNoText.ToString() }); model.ProductConfigItems = _productAttributeConfigService.RetrieveAll() .ToList() .Select(pac => pac.ToModel()) .ToList(); if (model.ProductConfigItems != null && model.ProductConfigItems.Count > 0) { model.ProductConfigItems.ForEach(pac => { pac.NameText = _localizationService.GetResource(pac.NameResource); }); model.ProductConfigItems = model.ProductConfigItems.OrderBy(pac => pac.NameText).ToList(); } }
public ActionResult Configure() { var model = new PromoConfigureModel(); // general model.Enabled = _promoSettings.Enabled; model.LogMessages = _promoSettings.LogMessages; model.ShowHelperMessages = _promoSettings.ShowHelperMessages; // Connection Details model.CompanyKey = _promoSettings.CompanyKey; model.PromoImportServiceEndpointAddress = _promoSettings.PromoImportEndpointAddress; model.BasketRequestServiceEndpointAddress = _promoSettings.BasketRequestEndpointAddress; model.PromoExportServiceEndpointAddress = _promoSettings.PromoExportEndpointAddress; // Product Feed //model.ProductPictureSize = _promoSettings.ProductPictureSize; model.StoreId = _promoSettings.StoreId; //model.BatchSize = _promoSettings.BatchSize; // Company and Store details model.StoreGroup = _promoSettings.StoreGroup; model.Channel = _promoSettings.Channel; model.SelectedServicesEndPoint = _promoSettings.ServiceEndpointSelection; model.SynchronizeCustomerRoles = _promoSettings.SynchronizeCustomerRoles; model.SynchronizeProducts = _promoSettings.SynchronizeProducts; model.SynchronizeShippingMethods = _promoSettings.SynchronizeShippingMethods; model.SynchronizeStores = _promoSettings.SynchronizeStores; model.SynchronizeCheckoutAttributes = _promoSettings.SynchronizeCheckoutAttributes; model.SynchronizeCurrencies = _promoSettings.SynchronizeCurrencies; model.UseSelectedCurrencyWhenSubmittingBaskets = _promoSettings.UseSelectedCurrencyWhenSubmittingBaskets; model.ShowMissedPromotions = _promoSettings.ShowMissedPromotions; model.ShowPromotionNameOption = _promoSettings.ShowPromotionDetailsInBasket; model.DisplayVersion = GetDisplayVersion(); model.SynchronizeAllWhenSaving = _promoSettings.InitialSetup; model.CanUpdateSynchronizeAll = !_promoSettings.InitialSetup; model.ShowAdvancedIntegrationSettings = _promoSettings.ShowAdvancedIntegrationSettings; SetupModelLists(model); return View("~/Plugins/Misc.QixolPromo/Views/Admin/Configure.cshtml", model); }