PSTestLib.PSCmdletBase.runSBEvent C# (CSharp) Метод

runSBEvent() публичный Метод

public runSBEvent ( ScriptBlock sb, AutomationElement src, AutomationEventArgs e ) : void
sb ScriptBlock
src AutomationElement
e AutomationEventArgs
Результат void
        void runSBEvent(ScriptBlock sb, 
                                AutomationElement src,
                                AutomationEventArgs e)
        {
            
            // inform the Wait-UiaEventRaised cmdlet
            SaveEventInput(
                src,
                e,
                e.EventId.ProgrammaticName,
                true);
//            try {
//                CurrentData.LastEventSource = src; // as AutomationElement;
//                CurrentData.LastEventArgs = e; // as AutomationEventArgs;
//                CurrentData.LastEventType = e.EventId.ProgrammaticName;
//                CurrentData.LastEventInfoAdded = true;
//            }
//            catch {
//                //WriteVerbose(this, "failed to register an event in the collection");
//            }
            
            // 20120206 Collection<PSObject> psObjects = null;
            try {
                Runspace.DefaultRunspace = RunspaceFactory.CreateRunspace();
                try {
                    Runspace.DefaultRunspace.Open();
                } catch (Exception e1) {
                    // 20130318
//                    ErrorRecord err = 
//                        new ErrorRecord(e1,
//                                        "ErrorOnOpeningRunspace",
//                                        ErrorCategory.InvalidOperation,
//                                        sb);
//                    err.ErrorDetails = 
//                        new ErrorDetails(
//                            "Unable to run a scriptblock:\r\n" + 
//                            sb.ToString());
//                    WriteError(this, err, false);
                    
                    WriteError(
                        this,
                        "Unable to run a scriptblock:\r\n" +
                        sb +
                        "." +
                        e1.Message,
                        "ErrorOnOpeningRunspace",
                        ErrorCategory.InvalidOperation,
                        // 20130318
                        //false);
                        true);
                }
                try {
                    var inputParams = new List<object>();
                    inputParams.Add(src);
                    inputParams.Add(e);
                    object[] inputParamsArray = inputParams.ToArray();
                    // psObjects = 
                        sb.InvokeReturnAsIs(inputParamsArray);
                        // sb.Invoke(inputParamsArray);
                    
                } catch (Exception e2) {
                    // 20130318
//                    ErrorRecord err = 
//                        new ErrorRecord(e2,
//                                        "ErrorInOpenedRunspace",
//                                        ErrorCategory.InvalidOperation,
//                                        sb);
//                    err.ErrorDetails = 
//                        new ErrorDetails("Unable to run a scriptblock");
//                    WriteError(this, err, true);
                    
                    WriteError(
                        this,
                        "Unable to run a scriptblock." +
                        e2.Message,
                        "ErrorInOpenedRunspace",
                        ErrorCategory.InvalidOperation,
                        true);
                }
// psObjects =
// sb.Invoke();
            } catch (Exception eOuter) {
                // 20130318
//                ErrorRecord err = 
//                    new ErrorRecord(eOuter,
//                                    "ErrorInInvokingScriptBlock", //"ErrorinCreatingRunspace",
//                                    ErrorCategory.InvalidOperation,
//                                    System.Management.Automation.Runspaces.Runspace.DefaultRunspace);
//                err.ErrorDetails = 
//                    new ErrorDetails("Unable to issue the following command:\r\n" + 
//                                     "System.Management.Automation.Runspaces.Runspace.DefaultRunspace = RunspaceFactory.CreateRunspace();" +
//                                     "\r\nException raised is\r\n" +
//                                     eOuter.Message);
                
                WriteError(
                    this,
                    "Unable to issue the following command:\r\n" +
                    "System.Management.Automation.Runspaces.Runspace.DefaultRunspace = RunspaceFactory.CreateRunspace();" +
                    "\r\nException raised is\r\n" +
                    eOuter.Message,
                    "ErrorInInvokingScriptBlock",
                    ErrorCategory.InvalidOperation,
                    true);
            }
        }
        #endregion Event delegate