public ActionResult Configure(ConfigurationModel model, FormCollection form)
		{
			if (!ModelState.IsValid)
				return Configure();

			ModelState.Clear();

			var storeDependingSettingHelper = new StoreDependingSettingHelper(ViewData);
			int storeScope = this.GetActiveStoreScopeConfiguration(_storeService, _services.WorkContext);
			var settings = _services.Settings.LoadSetting<AmazonPaySettings>(storeScope);

			model.Copy(settings, false);

			storeDependingSettingHelper.UpdateSettings(settings, form, storeScope, _services.Settings);

			_services.Settings.SaveSetting(settings, x => x.DataFetching, 0, false);
			_services.Settings.SaveSetting(settings, x => x.PollingMaxOrderCreationDays, 0, false);

			_apiService.DataPollingTaskUpdate(settings.DataFetching == AmazonPayDataFetchingType.Polling, model.PollingTaskMinutes * 60);

			_services.Settings.ClearCache();
			NotifySuccess(_services.Localization.GetResource("Plugins.Payments.AmazonPay.ConfigSaveNote"));

			return Configure();
		}
		public ActionResult Configure()
		{
			var model = new ConfigurationModel();
			int storeScope = this.GetActiveStoreScopeConfiguration(_storeService, _services.WorkContext);
			var settings = _services.Settings.LoadSetting<AmazonPaySettings>(storeScope);

			model.Copy(settings, true);

			_apiService.SetupConfiguration(model);

			var storeDependingSettingHelper = new StoreDependingSettingHelper(ViewData);
			storeDependingSettingHelper.GetOverrideKeys(settings, model, storeScope, _services.Settings);

			return View(model);
		}
        public void SetupConfiguration(ConfigurationModel model)
        {
            model.DataFetchings = new List<SelectListItem>()
            {
                new SelectListItem
                {
                    Text = T("Common.Unspecified").Text,
                    Value = ""
                },
                new SelectListItem
                {
                    Selected = (model.DataFetching == AmazonPayDataFetchingType.Ipn),
                    Text = T("Plugins.Payments.AmazonPay.DataFetching.Ipn"),
                    Value = ((int)AmazonPayDataFetchingType.Ipn).ToString()
                },
                new SelectListItem
                {
                    Selected = (model.DataFetching == AmazonPayDataFetchingType.Polling),
                    Text = T("Plugins.Payments.AmazonPay.DataFetching.Polling"),
                    Value = ((int)AmazonPayDataFetchingType.Polling).ToString()
                }
            };

            model.TransactionTypes = new List<SelectListItem>()
            {
                new SelectListItem
                {
                    Selected = (model.TransactionType == AmazonPayTransactionType.AuthorizeAndCapture),
                    Text = T("Plugins.Payments.AmazonPay.TransactionType.AuthAndCapture"),
                    Value = ((int)AmazonPayTransactionType.AuthorizeAndCapture).ToString()
                },
                new SelectListItem
                {
                    Selected = (model.TransactionType == AmazonPayTransactionType.Authorize),
                    Text = T("Plugins.Payments.AmazonPay.TransactionType.Auth"),
                    Value = ((int)AmazonPayTransactionType.Authorize).ToString()
                }
            };

            model.SaveEmailAndPhones = new List<SelectListItem>()
            {
                new SelectListItem
                {
                    Text = T("Common.Unspecified").Text,
                    Value = ""
                },
                new SelectListItem
                {
                    Selected = (model.SaveEmailAndPhone == AmazonPaySaveDataType.OnlyIfEmpty),
                    Text = T("Plugins.Payments.AmazonPay.AmazonPaySaveDataType.OnlyIfEmpty"),
                    Value = ((int)AmazonPaySaveDataType.OnlyIfEmpty).ToString()
                },
                new SelectListItem
                {
                    Selected = (model.SaveEmailAndPhone == AmazonPaySaveDataType.Always),
                    Text = T("Plugins.Payments.AmazonPay.AmazonPaySaveDataType.Always"),
                    Value = ((int)AmazonPaySaveDataType.Always).ToString()
                }
            };

            model.IpnUrl = GetPluginUrl("IPNHandler", _services.StoreContext.CurrentStore.SslEnabled);

            model.ConfigGroups = T("Plugins.Payments.AmazonPay.ConfigGroups").Text.SplitSafe(";");

            var task = _scheduleTaskService.GetTaskByType(AmazonPayCore.DataPollingTaskType);

            if (task == null)
                model.PollingTaskMinutes = 30;
            else
                model.PollingTaskMinutes = (task.Seconds / 60);
        }