-
Notifications
You must be signed in to change notification settings - Fork 33
/
RulesWizardExample.cs
61 lines (53 loc) · 2.04 KB
/
RulesWizardExample.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
using System;
using System.Management.Automation;
using System.Management.Automation.Runspaces;
namespace Template
{
// Define a simple class that represents a mail message
public class MailMessage
{
public MailMessage(string to, string from, string body)
{
this.To = to;
this.From = from;
this.Body = body;
}
public String To;
public String From;
public String Body;
}
public class RulesWizardExample
{
public static void Main(string[] args)
{
// Ensure that they've provided some script text
if(args.Length == 0)
{
Console.WriteLine("Usage:");
Console.WriteLine(" RulesWizardExample <script text>");
return;
}
// Create an example message to pass to our rules wizard
MailMessage mailMessage =
new MailMessage(
"This is a message about your book.");
// Create a runspace, which is the environment for
// running commands
Runspace runspace = RunspaceFactory.CreateRunspace();
runspace.Open();
// Create a variable, called "$message" in the Runspace, and populate
// it with a reference to the current message in our application.
// Pipeline commands can interact with this object like any other
// .Net object.
runspace.SessionStateProxy.SetVariable("message", mailMessage);
// Create a pipeline, and populate it with the script given in the
// first command line argument.
Pipeline pipeline = runspace.CreatePipeline(args[0]);
// Invoke (execute) the pipeline, and close the runspace.
pipeline.Invoke();
runspace.Close();
}
}
}