示例#1
0
        protected override Despatch CheckPlugin(string xmlData)
        {
            currentDespatch = DespatchPluginFactory.DeserializeStandardXml <DespatchExt>(xmlData);
            if (currentDespatch.CarrierName != "Royal Mail")
            {
                currentDespatch = null;
            }

            return(currentDespatch);
        }
示例#2
0
        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";
            }
        }
示例#3
0
        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);
        }