Example #1
0
            private void SendStopComplete()
            {
                OperationStateEventArgs operationStateEventArgs = new OperationStateEventArgs();

                operationStateEventArgs.OperationState = OperationState.StopComplete;
                OperationComplete.SafeInvoke(this, operationStateEventArgs);
            }
Example #2
0
        internal override void StopOperation()
        {
            OperationStateEventArgs operationStateEventArgs = null;

            lock (this._syncObject)
            {
                if (this.startComplete)
                {
                    this.stopComplete       = true;
                    this.startComplete      = true;
                    operationStateEventArgs = new OperationStateEventArgs {
                        BaseEvent      = new RunspaceStateEventArgs(this.runspace.RunspaceStateInfo),
                        OperationState = OperationState.StopComplete
                    };
                }
                else
                {
                    this.stopComplete = false;
                }
            }
            if (operationStateEventArgs != null)
            {
                this.FireEvent(operationStateEventArgs);
            }
            else
            {
                this.runspace.CloseAsync();
            }
        }
Example #3
0
        private void HandleRunspaceStateChanged(object source, RunspaceStateEventArgs stateEventArgs)
        {
            switch (stateEventArgs.RunspaceStateInfo.State)
            {
            case RunspaceState.BeforeOpen:
                break;

            case RunspaceState.Opening:
                break;

            case RunspaceState.Closing:
                break;

            default:
                OperationStateEventArgs e = new OperationStateEventArgs();
                e.BaseEvent = (EventArgs)stateEventArgs;
                if (stateEventArgs.RunspaceStateInfo.State == RunspaceState.Opened)
                {
                    e.OperationState = OperationState.StartComplete;
                    OpenRunspaceOperation.tracer.WriteLine("Runspace opened for {0}", (object)this.runspace.InstanceId);
                }
                else
                {
                    e.OperationState = OperationState.StopComplete;
                    OpenRunspaceOperation.tracer.WriteLine("Runspace closed for {0}", (object)this.runspace.InstanceId);
                }
                this.OperationComplete((object)this, e);
                break;
            }
        }
Example #4
0
            private void SendStopComplete()
            {
                OperationStateEventArgs operationStateEventArg = new OperationStateEventArgs();

                operationStateEventArg.OperationState = OperationState.StopComplete;
                this.OperationComplete.SafeInvoke <OperationStateEventArgs>(this, operationStateEventArg);
            }
        internal void RaiseOperationCompleteEvent(EventArgs baseEventArgs, OperationState state)
        {
            OperationStateEventArgs operationStateEventArg = new OperationStateEventArgs();

            operationStateEventArg.OperationState = state;
            this.OperationComplete.SafeInvoke <OperationStateEventArgs>(this, operationStateEventArg);
        }
            private void SendStopComplete()
            {
                OperationStateEventArgs eventArgs = new OperationStateEventArgs {
                    OperationState = OperationState.StopComplete
                };

                this.OperationComplete.SafeInvoke <OperationStateEventArgs>(this, eventArgs);
            }
Example #7
0
        private void SendStopComplete(EventArgs eventArgs = null)
        {
            OperationStateEventArgs args = new OperationStateEventArgs {
                BaseEvent      = eventArgs,
                OperationState = OperationState.StopComplete
            };

            this.OperationComplete.SafeInvoke <OperationStateEventArgs>(this, args);
        }
Example #8
0
            internal override void StopOperation()
            {
                this.RemoveEventCallback();
                OperationStateEventArgs eventArgs = new OperationStateEventArgs {
                    OperationState = OperationState.StopComplete
                };

                this.OperationComplete.SafeInvoke <OperationStateEventArgs>(this, eventArgs);
            }
Example #9
0
        private void RaiseOperationCompleteEvent()
        {
            this.job.StateChanged -= new EventHandler <JobStateEventArgs>(this.HandleJobStateChanged);
            OperationStateEventArgs eventArgs = new OperationStateEventArgs {
                OperationState = OperationState.StartComplete,
                BaseEvent      = EventArgs.Empty
            };

            this.OperationComplete.SafeInvoke <OperationStateEventArgs>(this, eventArgs);
        }
        protected override void HandleOperationComplete(object sender, OperationStateEventArgs stateEventArgs)
        {
            Exception             exception;
            ErrorRecord           record;
            ExecutionCmdletHelper helper = sender as ExecutionCmdletHelper;

            base.ProcessJobFailure(helper, out exception, out record);
            if (record != null)
            {
                this.WriteError(record);
            }
        }
        private void RaiseOperationCompleteEvent(EventArgs baseEventArgs)
        {
            this.pipeline.Dispose();
            OperationStateEventArgs e = new OperationStateEventArgs();

            e.OperationState = OperationState.StopComplete;
            e.BaseEvent      = baseEventArgs;
            if (this.OperationComplete == null)
            {
                return;
            }
            this.OperationComplete((object)this, e);
        }
Example #12
0
        protected override void HandleOperationComplete(
            object sender,
            OperationStateEventArgs stateEventArgs)
        {
            Exception   failureException;
            ErrorRecord failureErrorRecord;

            this.ProcessJobFailure(sender as ExecutionCmdletHelper, out failureException, out failureErrorRecord);
            if (failureException == null)
            {
                return;
            }
            this.Results.Add(new PSStreamObject(PSStreamObjectType.Error, (object)failureErrorRecord));
        }
        private void RaiseOperationCompleteEvent(EventArgs baseEventArgs)
        {
            if (base.pipeline != null)
            {
                base.pipeline.StateChanged -= new EventHandler <PipelineStateEventArgs>(this.HandlePipelineStateChanged);
                base.pipeline.Dispose();
            }
            OperationStateEventArgs eventArgs = new OperationStateEventArgs {
                OperationState = OperationState.StopComplete,
                BaseEvent      = baseEventArgs
            };

            if (this.OperationComplete != null)
            {
                this.OperationComplete.SafeInvoke <OperationStateEventArgs>(this, eventArgs);
            }
        }
Example #14
0
 private void FireEvent(OperationStateEventArgs operationStateEventArgs)
 {
     EventHandler <OperationStateEventArgs>[] handlerArray;
     lock (this._internalCallbacks)
     {
         handlerArray = new EventHandler <OperationStateEventArgs> [this._internalCallbacks.Count];
         this._internalCallbacks.CopyTo(handlerArray);
     }
     foreach (EventHandler <OperationStateEventArgs> handler in handlerArray)
     {
         try
         {
             handler.SafeInvoke <OperationStateEventArgs>(this, operationStateEventArgs);
         }
         catch (Exception exception)
         {
             CommandProcessorBase.CheckForSevereException(exception);
         }
     }
 }
Example #15
0
        private void HandleOperationComplete(object sender, OperationStateEventArgs stateEventArgs)
        {
            WmiAsyncCmdletHelper wmiAsyncCmdletHelper = (WmiAsyncCmdletHelper)sender;

            if (wmiAsyncCmdletHelper.State != WmiState.NotStarted)
            {
                if (wmiAsyncCmdletHelper.State != WmiState.Running)
                {
                    if (wmiAsyncCmdletHelper.State != WmiState.Completed)
                    {
                        if (wmiAsyncCmdletHelper.State != WmiState.Failed)
                        {
                            base.SetJobState(JobState.Stopped, wmiAsyncCmdletHelper.InternalException);
                            return;
                        }
                        else
                        {
                            base.SetJobState(JobState.Failed, wmiAsyncCmdletHelper.InternalException);
                            return;
                        }
                    }
                    else
                    {
                        base.SetJobState(JobState.Completed, wmiAsyncCmdletHelper.InternalException);
                        return;
                    }
                }
                else
                {
                    base.SetJobState(JobState.Running, wmiAsyncCmdletHelper.InternalException);
                    return;
                }
            }
            else
            {
                base.SetJobState(JobState.Stopped, wmiAsyncCmdletHelper.InternalException);
                return;
            }
        }
Example #16
0
        private void HandleRunspaceStateChanged(object source, RunspaceStateEventArgs stateEventArgs)
        {
            switch (stateEventArgs.RunspaceStateInfo.State)
            {
            case RunspaceState.BeforeOpen:
            case RunspaceState.Opening:
            case RunspaceState.Closing:
                return;
            }
            OperationStateEventArgs operationStateEventArgs = null;

            lock (this._syncObject)
            {
                if (!this.stopComplete)
                {
                    this.stopComplete       = true;
                    this.startComplete      = true;
                    operationStateEventArgs = new OperationStateEventArgs {
                        BaseEvent      = stateEventArgs,
                        OperationState = OperationState.StopComplete
                    };
                }
                else if (!this.startComplete)
                {
                    this.startComplete      = true;
                    operationStateEventArgs = new OperationStateEventArgs {
                        BaseEvent      = stateEventArgs,
                        OperationState = OperationState.StartComplete
                    };
                }
            }
            if (operationStateEventArgs != null)
            {
                this.FireEvent(operationStateEventArgs);
            }
        }
Example #17
0
        private void HandleRunspaceStateChanged(object sender, OperationStateEventArgs stateEventArgs)
        {
            ErrorRecord errorRecord;
            PSRemotingTransportException exception2;
            string str;

            if (sender == null)
            {
                throw PSTraceSource.NewArgumentNullException("sender");
            }
            if (stateEventArgs == null)
            {
                throw PSTraceSource.NewArgumentNullException("stateEventArgs");
            }
            RunspaceStateEventArgs baseEvent        = stateEventArgs.BaseEvent as RunspaceStateEventArgs;
            RunspaceState          state            = baseEvent.RunspaceStateInfo.State;
            OpenRunspaceOperation  operation        = sender as OpenRunspaceOperation;
            RemoteRunspace         operatedRunspace = operation.OperatedRunspace;

            if (operatedRunspace != null)
            {
                operatedRunspace.URIRedirectionReported -= new EventHandler <RemoteDataEventArgs <Uri> >(this.HandleURIDirectionReported);
            }
            PipelineWriter objectWriter = this.stream.ObjectWriter;
            Exception      reason       = baseEvent.RunspaceStateInfo.Reason;

            switch (state)
            {
            case RunspaceState.Opened:
            {
                PSSession remoteRunspaceInfo = new PSSession(operatedRunspace);
                base.RunspaceRepository.Add(remoteRunspaceInfo);
                Action <Cmdlet> action = cmdlet => cmdlet.WriteObject(remoteRunspaceInfo);
                if (objectWriter.IsOpen)
                {
                    objectWriter.Write(action);
                }
                return;
            }

            case RunspaceState.Closed:
            {
                Uri             uri     = WSManConnectionInfo.ExtractPropertyAsWsManConnectionInfo <Uri>(operatedRunspace.ConnectionInfo, "ConnectionUri", null);
                string          message = base.GetMessage(RemotingErrorIdStrings.RemoteRunspaceClosed, new object[] { (uri != null) ? uri.AbsoluteUri : string.Empty });
                Action <Cmdlet> action3 = cmdlet => cmdlet.WriteVerbose(message);
                if (objectWriter.IsOpen)
                {
                    objectWriter.Write(action3);
                }
                if (reason != null)
                {
                    ErrorRecord     errorRecord2 = new ErrorRecord(reason, "PSSessionStateClosed", ErrorCategory.OpenError, operatedRunspace);
                    Action <Cmdlet> action4      = cmdlet => cmdlet.WriteError(errorRecord2);
                    if (objectWriter.IsOpen)
                    {
                        objectWriter.Write(action4);
                    }
                }
                return;
            }

            case RunspaceState.Closing:
                return;

            case RunspaceState.Broken:
                exception2 = reason as PSRemotingTransportException;
                str        = null;
                if (exception2 != null)
                {
                    OpenRunspaceOperation operation2 = sender as OpenRunspaceOperation;
                    if (operation2 != null)
                    {
                        string computerName = operation2.OperatedRunspace.ConnectionInfo.ComputerName;
                        if (exception2.ErrorCode != -2144108135)
                        {
                            str = "[" + computerName + "] ";
                            if (!string.IsNullOrEmpty(exception2.Message))
                            {
                                str = str + exception2.Message;
                            }
                            else if (!string.IsNullOrEmpty(exception2.TransportMessage))
                            {
                                str = str + exception2.TransportMessage;
                            }
                            break;
                        }
                        string str3 = PSRemotingErrorInvariants.FormatResourceString(RemotingErrorIdStrings.URIRedirectionReported, new object[] { exception2.Message, "MaximumConnectionRedirectionCount", "PSSessionOption", "AllowRedirection" });
                        str = "[" + computerName + "] " + str3;
                    }
                }
                break;

            default:
                return;
            }
            PSRemotingDataStructureException exception3 = reason as PSRemotingDataStructureException;

            if (exception3 != null)
            {
                OpenRunspaceOperation operation3 = sender as OpenRunspaceOperation;
                if (operation3 != null)
                {
                    string str4 = operation3.OperatedRunspace.ConnectionInfo.ComputerName;
                    str = "[" + str4 + "] " + exception3.Message;
                }
            }
            if (reason == null)
            {
                reason = new RuntimeException(base.GetMessage(RemotingErrorIdStrings.RemoteRunspaceOpenUnknownState, new object[] { state }));
            }
            string fQEIDFromTransportError = WSManTransportManagerUtils.GetFQEIDFromTransportError((exception2 != null) ? exception2.ErrorCode : 0, this._defaultFQEID);

            errorRecord = new ErrorRecord(reason, operatedRunspace, fQEIDFromTransportError, ErrorCategory.OpenError, null, null, null, null, null, str, null);
            Action <Cmdlet> action2 = cmdlet => cmdlet.WriteError(errorRecord);

            if (objectWriter.IsOpen)
            {
                objectWriter.Write(action2);
            }
            this.toDispose.Add(operatedRunspace);
        }
Example #18
0
        protected virtual void HandleOperationComplete(object sender, OperationStateEventArgs stateEventArgs)
        {
            ExecutionCmdletHelper helper = sender as ExecutionCmdletHelper;

            this.DeterminedAndSetJobState(helper);
        }