Exemple #1
0
        /// <summary>
        /// 创建任务
        /// </summary>
        /// <param name="groupText">分组选项(Xml配置文件存储路径目录)</param>
        /// <param name="task">xml任务配置文件</param>
        public void CreateTask(string groupText, Config.Task task)
        {
            Config.TaskUnit unit = new Config.TaskUnit();
            unit.TaskConfig = task;
            unit.ConfigDir  = groupText;
            unit.ConfigPath = "";

            this.CreateTask(groupText, unit);
        }
        //增加结果行
        private void livTaskView_OnAppendSingleResult(object sender, object[] values)
        {
            Config.TaskUnit unit = (Config.TaskUnit)sender;

            foreach (TaskResultLog page in this.tabContent.TabPages)
            {
                if (page.Text.Equals(unit.TaskConfig.Name))
                {
                    if (values != null)
                    {
                        page.AppendRowResult(values);
                    }
                }
            }
        }
        //任务开始
        private void livTaskView_OnTaskStart(object sender, Config.LogEventArgs e)
        {
            Config.TaskUnit unit = (Config.TaskUnit)sender;

            //判断选项卡集合中是否已经存在
            foreach (TabPage page in this.tabContent.TabPages)
            {
                if (page.Text.Equals(unit.TaskConfig.Name))
                {
                    this.tabContent.SelectedTab = page;
                    return;
                }
            }
            //添加一个新的选项卡
            Utility.TaskResultLog fromLogPanel = new Utility.TaskResultLog(unit.TaskConfig.Name, unit.TaskConfig.ExtractionRules);
            this.tabContent.TabPages.Add(fromLogPanel);
            this.tabContent.SelectedTab = fromLogPanel;
        }
 //追加日志
 private void livTaskView_OnAppendSingileLog(object sender, Config.LogEventArgs e)
 {
     Config.TaskUnit unit = (Config.TaskUnit)sender;
     //for (int i = 1; i < this.tabContent.TabPages.Count; i++)
     //{
     //    if (tabContent.TabPages[i].Text.Equals(unit.TaskConfig.Name))
     //    {
     //        ((TaskResultLog)tabContent.TabPages[i]).AppendLogevent(e);
     //        return;
     //    }
     //}
     foreach (TaskResultLog page in this.tabContent.TabPages)
     {
         if (page.Text.Equals(unit.TaskConfig.Name))
         {
             page.AppendLogevent(e);
             return;
         }
     }
 }
Exemple #5
0
        /// <summary>
        /// 加载本地xml Task配置文件
        /// </summary>
        private void LoadLocationTaskItem()
        {
            string taskRootPath = AppDomain.CurrentDomain.BaseDirectory + "Task";

            string[] files = Directory.GetFiles(taskRootPath, "*.xml", SearchOption.AllDirectories);
            for (int i = 0; i < files.Length; i++)
            {
                try
                {
                    XmlSerializer xs         = new XmlSerializer(typeof(Config.Task));
                    Stream        readStream = new FileStream(files[i], FileMode.Open, FileAccess.Read, FileShare.Read);
                    Config.Task   task       = (Config.Task)xs.Deserialize(readStream);
                    readStream.Close();
                    readStream.Dispose();

                    Config.TaskUnit unit = new Config.TaskUnit();
                    unit.ConfigPath = files[i];
                    unit.TaskConfig = task;
                    unit.ConfigDir  = Directory.GetParent(files[i]).FullName;

                    this._TaskItem.Add(unit);

                    #region 订阅事件
                    this._TaskItem[_TaskItem.Count - 1].OnTaskStatusChanges  += new Config.OnTaskStatusChanges(TaskListView_OnTaskStatusChanges);
                    this._TaskItem[_TaskItem.Count - 1].OnTaskComplete       += new Config.OnTaskComplete(TaskListView_OnTaskComplete);
                    this._TaskItem[_TaskItem.Count - 1].OnTaskStart          += new Config.OnTaskStart(TaskListView_OnTaskStart);
                    this._TaskItem[_TaskItem.Count - 1].OnTaskPause          += new Config.OnTaskPause(TaskListView_OnTaskPause);
                    this._TaskItem[_TaskItem.Count - 1].OnTaskStop           += new Config.OnTaskStop(TaskListView_OnTaskStop);
                    this._TaskItem[_TaskItem.Count - 1].OnAppendSingileLog   += new Config.OnAppendSingileLog(TaskListView_OnAppendSingileLog);
                    this._TaskItem[_TaskItem.Count - 1].OnAppendSingleResult += new Config.OnAppendSingleResult(TaskListView_OnAppendSingleResult);
                    this._TaskItem[_TaskItem.Count - 1].OnPublishResult      += new Config.OnPublishResult(TaskListView_OnPublishResult);
                    #endregion
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }
            }
        }
Exemple #6
0
        /// <summary>
        /// 创建任务
        /// </summary>
        /// <param name="groupText">分组选项(Xml配置文件存储路径目录)</param>
        /// <param name="taskUnit">任务控制单元</param>
        public void CreateTask(string groupText, Config.TaskUnit taskUnit)
        {
            taskUnit.ConfigDir = groupText; //配置文件目录

            //显示任务编辑窗体
            FrmTask frmtask = new FrmTask(taskUnit);

            frmtask.ShowDialog();

            /*
             * 此处控制逻辑有异常,待修改。
             *描述:新建一个任务之后,该任务还并未编辑完毕,任务列表视图已经显示了此任务。
             *考虑:是否能实现显示模态窗口之后,以下的代码暂停执行?
             */
            //追加新的任务项
            if (frmtask._TaskUnit != null && !string.IsNullOrEmpty(frmtask._TaskUnit.TaskConfig.Name))
            {
                _TaskItem.Add(frmtask._TaskUnit);
            }

            //重新显示
            ShowGroupItem(groupText);
        }
 //任务完成
 private void livTaskView_OnTaskComplete(object sender, Config.LogEventArgs e)
 {
     Config.TaskUnit unit = (Config.TaskUnit)sender;
 }
Exemple #8
0
        /// <summary>
        /// 刷新任务项状态
        /// </summary>
        /// <param name="index">任务项索引</param>
        /// <param name="task">任务项</param>
        public void RefreshTaskStatus(int index, Config.TaskUnit task)
        {
            if (this.InvokeRequired)
            {
                this.Invoke(new OnRefreshTaskStatus(RefreshTaskStatus), new object[] { index, task });
            }
            else
            {
                #region 更新项状态
                if (Items.Count == 0)
                {
                    return;
                }

                for (int i = 0; i < _TaskItem.Count; i++)
                {
                    for (int j = 0; j < Items.Count; j++)
                    {
                        if (_TaskItem[i].TaskConfig.Name.Equals(Items[j].Text))
                        {
                            index = j;
                            break;
                        }
                    }
                }

                //更新项文字信息
                task.TaskConfig.ElapsedTime         = DateTime.Now.Subtract(task.TaskConfig.StartingTime).Seconds;
                this.Items[index].SubItems[1].Text  = task.TaskConfig.UrlListManager.PickedUrlsPosition.ToString();
                this.Items[index].SubItems[2].Text  = task.TaskConfig.UrlListManager.PickedUrlsCount.ToString();
                this.Items[index].SubItems[3].Text  = task.TaskConfig.UrlListManager.StartingUrlListPosition.ToString();
                this.Items[index].SubItems[4].Text  = task.TaskConfig.UrlListManager.StartingUrlList.Count.ToString();
                this.Items[index].SubItems[5].Text  = task.TaskConfig.UrlListManager.HistoryUrlsCount.ToString();
                this.Items[index].SubItems[6].Text  = task.Results.Rows.Count.ToString();
                this.Items[index].SubItems[7].Text  = task.TaskConfig.ResultCount.ToString();
                this.Items[index].SubItems[8].Text  = task.TaskConfig.RepeatedRowsCount.ToString();
                this.Items[index].SubItems[9].Text  = task.TaskConfig.ErrorRowsCount.ToString();
                this.Items[index].SubItems[10].Text = task.TaskConfig.ElapsedTime + " 秒";
                this.Items[index].SubItems[11].Text = task.TaskConfig.StartingTime.ToString("yyyy-MM-dd HH:mm:ss");    //开始时间

                //刷新图标
                switch (task.Action)
                {
                case Config.Action.Finish:
                    this.Items[index].ImageKey = "editmin.png";
                    break;

                case Config.Action.Ready:
                    this.Items[index].ImageKey = "taskmin.png";
                    break;

                case Config.Action.Start:
                    this.Items[index].ImageKey = "startmin.png";
                    break;

                case Config.Action.Pause:
                    this.Items[index].ImageKey = "pausemin.png";
                    break;

                case Config.Action.Stop:
                    this.Items[index].ImageKey = "stopmin.png";
                    break;

                case Config.Action.Running:
                    this.Items[index].ImageKey = "pausemin.png";
                    break;
                }
                #endregion
            }
        }
Exemple #9
0
 //状态改变
 private void TaskListView_OnTaskStatusChanges(object sender, Config.Action action)
 {
     Config.TaskUnit unit = (Config.TaskUnit)sender;
     RefreshTaskStatus(0, unit); //刷新任务状态
 }
Exemple #10
0
        /// <summary>
        /// 加载本地xml Task配置文件
        /// </summary>
        private void LoadLocationTaskItem()
        {
            string taskRootPath = AppDomain.CurrentDomain.BaseDirectory + "Task";
            string[] files = Directory.GetFiles(taskRootPath, "*.xml", SearchOption.AllDirectories);
            for (int i = 0; i < files.Length; i++)
            {
                try
                {
                    XmlSerializer xs = new XmlSerializer(typeof(Config.Task));
                    Stream readStream = new FileStream(files[i], FileMode.Open, FileAccess.Read, FileShare.Read);
                    Config.Task task = (Config.Task)xs.Deserialize(readStream);
                    readStream.Close();
                    readStream.Dispose();

                    Config.TaskUnit unit = new Config.TaskUnit();
                    unit.ConfigPath = files[i];
                    unit.TaskConfig = task;
                    unit.ConfigDir = Directory.GetParent(files[i]).FullName;

                    this._TaskItem.Add(unit);

                    #region 订阅事件
                    this._TaskItem[_TaskItem.Count - 1].OnTaskStatusChanges += new Config.OnTaskStatusChanges(TaskListView_OnTaskStatusChanges);
                    this._TaskItem[_TaskItem.Count - 1].OnTaskComplete += new Config.OnTaskComplete(TaskListView_OnTaskComplete);
                    this._TaskItem[_TaskItem.Count - 1].OnTaskStart += new Config.OnTaskStart(TaskListView_OnTaskStart);
                    this._TaskItem[_TaskItem.Count - 1].OnTaskPause += new Config.OnTaskPause(TaskListView_OnTaskPause);
                    this._TaskItem[_TaskItem.Count - 1].OnTaskStop += new Config.OnTaskStop(TaskListView_OnTaskStop);
                    this._TaskItem[_TaskItem.Count - 1].OnAppendSingileLog += new Config.OnAppendSingileLog(TaskListView_OnAppendSingileLog);
                    this._TaskItem[_TaskItem.Count - 1].OnAppendSingleResult += new Config.OnAppendSingleResult(TaskListView_OnAppendSingleResult);
                    this._TaskItem[_TaskItem.Count - 1].OnPublishResult += new Config.OnPublishResult(TaskListView_OnPublishResult);
                    #endregion
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }
            }
        }
Exemple #11
0
        /// <summary>
        /// 创建任务
        /// </summary>
        /// <param name="groupText">分组选项(Xml配置文件存储路径目录)</param>
        /// <param name="task">xml任务配置文件</param>
        public void CreateTask(string groupText, Config.Task task){
            Config.TaskUnit unit = new Config.TaskUnit();
            unit.TaskConfig = task;
            unit.ConfigDir = groupText;
            unit.ConfigPath = "";

            this.CreateTask(groupText, unit);
        }