Beispiel #1
0
		public TreeTask(TreeTaskInfo taskInfo)
		{
			this.Info               = taskInfo;
			this._threadCounter     = new TreeTaskThreadCounter(taskInfo.Connection);
			this._waitingJobs       = new ConcurrentQueue<TreeJob>();
			this._runningJobs       = new ObservableCollection<TreeJob>();
			this._runningJobsLock   = new object();
			this.CancellationSource = new CancellationTokenSource();
			this.Progress           = new TreeTaskProgressInfo();

			Progress.AddItems(1);
		}
        public TreeTask(TreeTaskInfo taskInfo)
        {
            this.Info               = taskInfo;
            this._threadCounter     = new TreeTaskThreadCounter(taskInfo.Connection);
            this._waitingJobs       = new ConcurrentQueue <TreeJob>();
            this._runningJobs       = new ObservableCollection <TreeJob>();
            this._runningJobsLock   = new object();
            this.CancellationSource = new CancellationTokenSource();
            this.Progress           = new TreeTaskProgressInfo();

            Progress.AddItems(1);
        }
		public void SetInProgress(TreeTaskInfo taskInfo, bool currentInProgress, bool existsInProgress)
		{
			Action action = () =>
			{
				btnStop.Visible = existsInProgress;

				//processesProgressBar.Value = existsInProgress ? 0 : 100;
				//processesProgressBar.Visible = existsInProgress;
				processWithLabel.Value        = existsInProgress ? 0 : 100;
				processWithLabel.ShowProgerss = existsInProgress;

				progressDetailsButton.Visible = existsInProgress;

				// updateNodeToolStripMenuItem.Enabled = !inProgress;
				// updateHierarciallyToolStripMenuItem.Enabled = !inProgress;
				// refreshTreeToolStripMenuItem.Enabled = !inProgress;
			};

			this.SafeInvoke(action);
		}
 public static TreeTask Create(TreeTaskInfo taskInfo)
 {
     return(new TreeTask(taskInfo));
 }
		public TreeTask BeginRefreshTask(
			TreeNode           treeNode,
			bool               hierarchically,
			NodeUpdatingSource mode,
			Action             continueWith = null
		)
		{
			if (treeNode == null)
			{
				return null;
			}

			ConcreteTemplateNodeDefinition templateDef =
				treeNode.Tag as ConcreteTemplateNodeDefinition;

			if (templateDef == null)
			{
				log.Debug("MSSQLServerAuditor.TreeTaskManager:BeginRefreshTask templateDef is not defined.");
				return null;
			}

			long nodeHandle = templateDef.ComputeHandle();

			if (this.RunningTasks.ContainsKey(nodeHandle))
			{
				return null;
			}

			ConnectionData connectionData = GetConnectionData(treeNode);

			TreeTaskInfo taskInfo = new TreeTaskInfo
			{
				Connection     = connectionData,
				Mode           = mode,
				Hierarchically = hierarchically,
				Note           = string.Format("{0}", DateTime.Now.ToString("mm:ss")),
				Handle         = nodeHandle
			};

			TreeTask treeTask = TreeTask.Create(taskInfo);

			if (this._treeControl != null)
			{
				treeTask.Progress.ProgressChanged +=
					(sender, args) => this._treeControl.SetProgressValue((int) args.NewValue);
			}

			treeTask.Completed += (sender, args) =>
			{
				Task.Factory.StartNew(() => RemoveClosedTask(treeTask));

				if (continueWith != null)
				{
					continueWith();
				}
			};

			lock (this._runningTasksLock)
			{
				this.RunningTasks.TryAdd(taskInfo.Handle, treeTask);
			}

			// don't change order of Add and Subscribe!
			treeTask.JobChanged += OnTaskJobChanged;

			if (this._treeControl != null)
			{
				this._treeControl.SetInProgress(taskInfo, true, true);
			}

			ProgressItem progress = new ProgressItem();

			RefreshNode(treeTask, null, treeNode, progress);

			return treeTask;
		}
Beispiel #6
0
        public TreeTask BeginRefreshTask(
            TreeNode treeNode,
            bool hierarchically,
            NodeUpdatingSource mode,
            Action continueWith = null
            )
        {
            if (treeNode == null)
            {
                return(null);
            }

            ConcreteTemplateNodeDefinition templateDef =
                treeNode.Tag as ConcreteTemplateNodeDefinition;

            if (templateDef == null)
            {
                log.Debug("MSSQLServerAuditor.TreeTaskManager:BeginRefreshTask templateDef is not defined.");
                return(null);
            }

            long nodeHandle = templateDef.ComputeHandle();

            if (this.RunningTasks.ContainsKey(nodeHandle))
            {
                return(null);
            }

            ConnectionData connectionData = GetConnectionData(treeNode);

            TreeTaskInfo taskInfo = new TreeTaskInfo
            {
                Connection     = connectionData,
                Mode           = mode,
                Hierarchically = hierarchically,
                Note           = string.Format("{0}", DateTime.Now.ToString("mm:ss")),
                Handle         = nodeHandle
            };

            TreeTask treeTask = TreeTask.Create(taskInfo);

            if (this._treeControl != null)
            {
                treeTask.Progress.ProgressChanged +=
                    (sender, args) => this._treeControl.SetProgressValue((int)args.NewValue);
            }

            treeTask.Completed += (sender, args) =>
            {
                Task.Factory.StartNew(() => RemoveClosedTask(treeTask));

                if (continueWith != null)
                {
                    continueWith();
                }
            };

            lock (this._runningTasksLock)
            {
                this.RunningTasks.TryAdd(taskInfo.Handle, treeTask);
            }

            // don't change order of Add and Subscribe!
            treeTask.JobChanged += OnTaskJobChanged;

            if (this._treeControl != null)
            {
                this._treeControl.SetInProgress(taskInfo, true, true);
            }

            ProgressItem progress = new ProgressItem();

            RefreshNode(treeTask, null, treeNode, progress);

            return(treeTask);
        }
Beispiel #7
0
		public static TreeTask Create(TreeTaskInfo taskInfo)
		{
			return new TreeTask(taskInfo);
		}