public ActionResult Index(NopCommerceC5ConnectorSettingsModel model)
        {
            string saveResult = "";
            if (ModelState.IsValid)
            {
                _settings.DefaultListId = model.DefaultListId;
                _settings.ApiKey = model.ApiKey;
                _settings.WebHookKey = model.WebHookKey;

                _settingService.SaveSetting(_settings);
            }

            // Update the task
            var task = FindScheduledTask();
            if (task != null)
            {
                task.Enabled = model.AutoSync;
                task.Seconds = model.AutoSyncEachMinutes * 60;
                _scheduleTaskService.UpdateTask(task);
                saveResult = _localizationService.GetResource("Plugin.Misc.MailChimp.AutoSyncRestart");
            }

            model = PrepareModel();
            //set result text
            model.SaveResult = saveResult;

            return View(VIEW_PATH, model);
        }
        private void MapListOptions(NopCommerceC5ConnectorSettingsModel model)
        {
            //NameValueCollection listOptions = _mailChimpApiService.RetrieveLists();
            NameValueCollection listOptions = new NameValueCollection();

            //Ensure there will not be duplicates
            model.ListOptions.Clear();

            foreach (string key in listOptions.AllKeys)
            {
                model.ListOptions.Add(new SelectListItem { Text = key, Value = listOptions[key] });
            }
        }
        private NopCommerceC5ConnectorSettingsModel PrepareModel()
        {
            var model = new NopCommerceC5ConnectorSettingsModel();

            //Set the properties
            model.ApiKey = _settings.ApiKey;
            model.DefaultListId = _settings.DefaultListId;
            model.WebHookKey = _settings.WebHookKey;
            ScheduleTask task = FindScheduledTask();
            if (task != null)
            {
                model.AutoSyncEachMinutes = task.Seconds / 60;
                model.AutoSync = task.Enabled;
            }

            //Maps the list options
            MapListOptions(model);

            return model;
        }
        public ActionResult Sync(NopCommerceC5ConnectorSettingsModel model, HttpPostedFileBase file)
        {
            //var model = PrepareModel();
            try
            {
                var sb = new StringBuilder();
                IImportService importService = _importFabric.GetImportService(model.ImportType);
                importService.Import(file);
                /*var result = _mailChimpApiService.Synchronize();
                //subscribe
                sb.Append("Subscribe results: ");
                sb.Append(result.SubscribeResult);
                sb.Append("<br />");
                for (int i = 0; i < result.SubscribeErrors.Count; i++)
                {
                    sb.Append(result.SubscribeErrors[i]);
                    if (i != result.SubscribeErrors.Count - 1)
                        sb.Append("<br />");
                }

                //unsubscribe
                sb.Append("<br />");
                sb.Append("Unsubscribe results: ");
                sb.Append(result.UnsubscribeResult);
                sb.Append("<br />");
                for (int i = 0; i < result.UnsubscribeErrors.Count; i++)
                {
                    sb.Append(result.UnsubscribeErrors[i]);
                    if (i != result.UnsubscribeErrors.Count - 1)
                        sb.Append("<br />");
                }
                //set result text
                model.SyncResult = sb.ToString();*/
                model.SyncResult = "Success";
            }
            catch (Exception exc)
            {
                //set result text
                model.SyncResult = exc.ToString();
            }

            return View(VIEW_PATH, model);
        }