protected override Despatch CheckPlugin(string xmlData) { currentDespatch = DespatchPluginFactory.DeserializeStandardXml <DespatchExt>(xmlData); if (currentDespatch.CarrierName != "Royal Mail") { currentDespatch = null; } return(currentDespatch); }
private void LoadPlugins() { for (int i = settingsToolStripMenuItem.DropDownItems.Count - 1; i >= 0; i--) { ToolStripItem menuItem = settingsToolStripMenuItem.DropDownItems[i]; if (menuItem.Tag != null) { settingsToolStripMenuItem.DropDownItems.RemoveAt(i); } } if (Directory.Exists(Properties.Settings.Default.PluginPath)) { if (!String.IsNullOrEmpty(Properties.Settings.Default.RulesSetting)) { DespatchRulesFactory.LoadDespatchRulesPlugin(Properties.Settings.Default.PluginPath, Properties.Settings.Default.RulesSetting); WriteLog("Logic rules loaded.", Color.Black); } else { WriteLog("No extra logic rules loaded.", Color.Black); } var plugins = DespatchPluginFactory.LoadPlugins(Properties.Settings.Default.PluginPath, this, new EventHandler(currentPlugin_OnResultReceived)); if (plugins.Count <= 0) { CurrentProcessStatusLabel.Text = "No plugins found"; } else { foreach (var plugin in plugins) { ToolStripMenuItem pluginSetting = new ToolStripMenuItem(string.Format("{0} settings...", plugin.PluginName)); pluginSetting.Tag = plugin; pluginSetting.Click += pluginSetting_Click; settingsToolStripMenuItem.DropDownItems.Insert(0, pluginSetting); } CurrentProcessStatusLabel.Text = "Ready"; } } else { CurrentProcessStatusLabel.Text = "Unable to find plugin folder"; } }
private bool ProcessData() { if (!string.IsNullOrEmpty(PreviewTextbox.Text)) { return(false); } CheckButton.Enabled = false; CurrentProcessStatusLabel.Text = "Checking download for despatch file"; currentFile = FileOperations.GetFirstFileInFolder(Settings.DownloadPath, "*.pvx"); if (!string.IsNullOrEmpty(currentFile)) { WriteLog(string.Format("Reading file {0}", currentFile), Color.Black); //read file var content = FileOperations.ReadFile(currentFile); //Find the right plugin to process. currentPlugin = DespatchPluginFactory.GetPlugin(content); if (currentPlugin != null) { PreviewTextbox.Text = ""; WriteLog(string.Format("Waiting to be processed by {0}", currentPlugin.PluginName), Color.Black); UpdateTextBox(PreviewTextbox, currentPlugin.GetPreview()); CurrentProcessStatusLabel.Text = "Previewing despatch file for " + currentPlugin.SalesOrderNumber; } } else { PreviewTextbox.Text = ""; CheckButton.Enabled = true; WriteLog("No file found.", Color.Black); CurrentProcessStatusLabel.Text = "No file found."; } if (!AutoCheck.Checked) { CheckButton.Enabled = true; } return(false); }