protected virtual void PlanComplete(IPlanRuntimeContainer planContainer)
        {
            InProcPlanInfo fake = null;

            if (_plans.ContainsKey(planContainer.PlanInstanceId))
            {
                _plans.TryRemove(planContainer.PlanInstanceId, out fake);
            }

            OnPlanCompleted(planContainer);
        }
        /// <summary>
        /// Queues a new Task onto the TaskFactory
        /// </summary>
        /// <param name="planContainer"></param>
        /// <returns>Success/Fail for whether the Task is queued.</returns>
        public virtual bool StartPlan(IPlanRuntimeContainer planContainer)
        {
            if (!_isDrainstopped)
            {
                CancellationTokenSource cts  = new CancellationTokenSource();
                InProcPlanInfo          info = new InProcPlanInfo()
                {
                    PlanPod           = planContainer,
                    CancellationToken = cts
                };
                _plans[planContainer.PlanInstanceId] = info;

                _tasks.Add(_tf.StartNew(() => { planContainer.Start(cts.Token, PlanComplete); }, cts.Token));
            }

            return(!_isDrainstopped);
        }
        /// <summary>
        /// Queues a new Task onto the TaskFactory
        /// </summary>
        /// <param name="planContainer"></param>
        /// <returns>Success/Fail for whether the Task is queued.</returns>
        public virtual bool StartPlan(IPlanRuntimeContainer planContainer)
        {
            if (!_isDrainstopped)
            {
                CancellationTokenSource cts  = new CancellationTokenSource();
                InProcPlanInfo          info = new InProcPlanInfo()
                {
                    PlanPod           = planContainer,
                    CancellationToken = cts
                };
                _plans[planContainer.PlanInstanceId] = info;

                WindowsIdentity user = WindowsIdentity.GetCurrent();
                _tasks.Add(_tf.StartNew(() =>
                {
                    SynapseServer.Logger.Debug($"Executing Plan [{planContainer.Plan.Name}] as User [{user.Name}]");
                    planContainer.Start(cts.Token, PlanComplete);
                }
                                        , cts.Token));
            }

            return(!_isDrainstopped);
        }
 protected virtual void PlanComplete(IPlanRuntimeContainer planContainer)
 {
     _plans.Remove(planContainer.PlanInstanceId);
     OnPlanCompleted(planContainer);
 }
 public PlanCompletedEventArgs(IPlanRuntimeContainer planContainer)
 {
     PlanContainer = planContainer;
     TimeCompleted = DateTime.Now;
 }
 protected void OnPlanCompleted(IPlanRuntimeContainer planContainer)
 {
     PlanCompleted?.Invoke(this, new PlanCompletedEventArgs(planContainer));
 }
Example #7
0
 protected virtual void PlanComplete(IPlanRuntimeContainer planContainer)
 {
     //_plans.Remove( planContainer.PlanInstanceId );
     SynapseServer.Logger.Debug($"Completed: {planContainer.PlanInstanceId}, {planContainer.Plan.Name}");
 }