Пример #1
0
 public static void AddTask(string _taskName, ITaskPlugin _iplugin)
 {
     if (!_taskLib.ContainsKey(_taskName))
     {
         _taskLib.Add(_taskName, _iplugin);
     }
 }
Пример #2
0
        private void ITaskPlugin_Click(object sender, RoutedEventArgs e)
        {
            MenuItem    item   = sender as MenuItem;
            ITaskPlugin plugin = item.Tag as ITaskPlugin;

            if (MessageBox.Show(plugin.info, plugin.name, MessageBoxButton.YesNo) == MessageBoxResult.Yes)
            {
                TaskQueue.AddImportantTask(plugin.GetTask());
            }
        }
Пример #3
0
        public static void AddByTaskplugin(ITaskPlugin _taskplugin)
        {
            TaskListItem _item = new TaskListItem();

            _item.TaskName         = _taskplugin.Name;
            _item.TaskCheckType    = _taskplugin.CheckType;
            _item.State            = 0;
            _item.LastResult       = 9;
            _item.LastErrorMsg     = "";
            _item.LastFinishedTime = DateTime.MinValue;
            _item.NextStartTime    = DateTime.Now;
            _item.TaskPlugin       = _taskplugin;
            Add(_item);
        }
Пример #4
0
        /// <summary>
        /// 任务管理器
        /// </summary>
        /// <param name="application"></param>
        /// <param name="_rwid">任务ID</param>
        /// <param name="_lb">任务类别</param>
        /// <param name="_ml">任务命令</param>
        public static void RunTask(string _rwid, string _lb, string _ml)
        {
            string      _pluginName = _lb.Trim();
            ITaskPlugin _plugin     = TaskLib.GetService(_pluginName);

            if (_plugin == null)
            {
                throw new Exception(string.Format("任务{0}接口未注册!", _pluginName));
            }
            try
            {
                Task_Base _task = _plugin.GetTaskObject(_rwid, _ml) as Task_Base;
                Thread    t     = new Thread(new ThreadStart(_task.ThreadProc));
                t.Start();
            }
            catch (Exception ex)
            {
                OralceLogWriter.WriteSystemLog(ex.Message, "ERROR");
            }
        }
Пример #5
0
 private void AddNewTask(ITaskPlugin _plugin)
 {
     application.AddTask(_plugin.Name, _plugin as ITaskPlugin);
 }
Пример #6
0
        public MainWindow()
        {
            InitializeComponent();
            Title = Tool.GetConfig("NAME");
            void Log(string log)
            {
                Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Normal, new Action(() =>
                {
                    LogTextBox.Text += log + "\n";
                    UpdateLayout();
                    LogTextBox.ScrollToVerticalOffset(LogTextBox.ActualHeight + LogTextBox.VerticalOffset);
                }));
            }

            Tool.Log = Log;

            List <string> pluginpath = FindPlugin();

            foreach (string filename in pluginpath)
            {
                try
                {
                    //获取文件名
                    string asmfile = filename;
                    string asmname = Path.GetFileNameWithoutExtension(asmfile);
                    if (asmname != string.Empty)
                    {
                        // 利用反射,构造DLL文件的实例
                        Assembly asm = Assembly.LoadFile(asmfile);
                        //利用反射,从程序集(DLL)中,提取类,并把此类实例化
                        Type[] t = asm.GetExportedTypes();
                        foreach (Type type in t)
                        {
                            if (type.GetInterface("ITaskPlugin") != null)
                            {
                                ITaskPlugin plugin = (ITaskPlugin)Activator.CreateInstance(type);
                                MenuItem    item   = new MenuItem();
                                item.Header = plugin.name;
                                item.Tag    = plugin;
                                item.Click += ITaskPlugin_Click;
                                TaskMenu.Items.Add(item);
                            }
                            else if (type.GetInterface("ISchedulePlugin") != null)
                            {
                                ISchedulePlugin plugin = (ISchedulePlugin)Activator.CreateInstance(type);
                                MenuItem        item   = new MenuItem();
                                item.Header = plugin.name;
                                item.Tag    = plugin;
                                item.Click += ISchedulePlugin_Click;
                                ScheduleMenu.Items.Add(item);
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    Console.Write(ex.Message);
                }
            }
            string info = Tool.GetInfo();

            if (info != "")
            {
                MessageBox.Show(info);
            }
        }
Пример #7
0
 public bool AddTask(string _taskName, ITaskPlugin _taskPlugin)
 {
     TaskList.AddByTaskplugin(_taskPlugin);
     WriteMessage(string.Format("任务[{0}]加载成功!", _taskName), EventLogEntryType.Information);
     return(true);
 }
Пример #8
0
 public bool AddTask(string _taskName, ITaskPlugin _taskPlugin)
 {
     throw new NotImplementedException();
 }
Пример #9
0
 public bool AddTask(string _plugInName, ITaskPlugin _taskPlugin)
 {
     TaskLib.AddTask(_plugInName, _taskPlugin);
     WriteMessage(string.Format("[ {0} ]的任务注册成功!", _taskPlugin.Description));
     return(true);
 }