Class Command
An AML request to be submitted to the server
Inheritance
Inherited Members
Namespace: Innovator.Client
Assembly: Innovator.Client.dll
Syntax
public class Command
Remarks
In most situations, you should never need to interact with the Command class directly since a System.String is implicitly promoted to a Command. For example, with the Apply(IConnection, Command, Object[]), you can use code similar to
// Get preliminary parts which have existed for a little bit of time
var components = conn.Apply(@"<Item type='Part' action='get'>
<classification>@0</classification>
<created_on condition='lt'>@1</created_on>
<state>Preliminary</state>
</Item>", classification, DateTime.Now.AddMinutes(-20)).Items();
Behind the scenes, this is equivalent to the code
// Get preliminary parts which have existed for a little bit of time
var components = conn.Apply(new Command(@"<Item type='Part' action='get'>
<classification>@0</classification>
<created_on condition='lt'>@1</created_on>
<state>Preliminary</state>
</Item>", classification, DateTime.Now.AddMinutes(-20))).Items();
So why would you need to create a Command? Perhaps, you need to specify the SOAP action to use
var cmd = new Command(@"<AML>
<Item type = 'Part' action='get' id='30F66F086BDE4032B29034FC7D84A99D' />
<Item type = 'Part' action='get' id='3F292E347CC64FB698C58E010364537E' />
</AML>").WithAction(CommandAction.ApplyAML);
var parts = conn.Apply(cmd).Items();
Or, you would rather use named parameters instead of numbered parameters
// Get preliminary parts which have existed for a little bit of time
var components = conn.Apply(new Command(@"<Item type='Part' action='get'>
<classification>@class</classification>
<created_on condition='lt'>@created</created_on>
<state>Preliminary</state>
</Item>")
.WithParam("class", classification)
.WithParam("created", DateTime.Now.AddMinutes(-20))).Items();
For more information on how parameter substitution works see ParameterSubstitution. For other ways to create AML, see ElementFactory
Constructors
| Improve this Doc View SourceCommand()
Instantiate a new command
Declaration
public Command()
Command(IAmlNode)
Creates an AML command that will be sent to the server from an IAmlNode
Declaration
public Command(IAmlNode aml)
Parameters
Type | Name | Description |
---|---|---|
IAmlNode | aml | The AML object (e.g. IReadOnlyItem) that you want to create the command with |
Command(IEnumerable<IAmlNode>)
Creates an AML command that will be sent to the server from an System.Collections.Generic.IEnumerable<T>
Declaration
public Command(IEnumerable<IAmlNode> aml)
Parameters
Type | Name | Description |
---|---|---|
System.Collections.Generic.IEnumerable<IAmlNode> | aml | System.Collections.Generic.IEnumerable<T> that you want to create the command with |
Command(String, Object[])
Creates an AML command that will be sent to the server. Numbered AML parameters (e.g. @0, used as attribute and element values) will be replaced with the corresponding arguments.
Declaration
public Command(string query, params object[] args)
Parameters
Type | Name | Description |
---|---|---|
System.String | query | Query string containing the parameters |
System.Object[] | args | Replacement values for the numbered parameters |
Remarks
Property type conversion and XML formatting is performed
Properties
| Improve this Doc View SourceAction
SOAP action to use with the AML
Declaration
public CommandAction Action { get; set; }
Property Value
Type | Description |
---|---|
CommandAction |
ActionString
SOAP action to use with the AML (represented as a string)
Declaration
public string ActionString { get; set; }
Property Value
Type | Description |
---|---|
System.String |
Aml
The AML query
Declaration
public virtual string Aml { get; set; }
Property Value
Type | Description |
---|---|
System.String |
LogListener
Gets or sets the delegate which will be called when a log item is written pertaining to this request.
Declaration
public Action<int, string, IEnumerable<KeyValuePair<string, object>>> LogListener { get; set; }
Property Value
Type | Description |
---|---|
System.Action<System.Int32, System.String, System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<System.String, System.Object>>> | The delegate which will be called when a log item is written pertaining to this request. |
Remarks
The arguments to the delegate are
Value | Description |
---|---|
System.Int32: Log Level | Indicates the severity of the message. Always 4 to indiate an informational message |
System.String: Message | The text of the message |
System.Collections.Generic.IEnumerable<T>: Parameters | Structured parameters which contain useful log data |
Parameters
Gets the parameters.
Declaration
public IEnumerable<KeyValuePair<string, object>> Parameters { get; }
Property Value
Type | Description |
---|---|
System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<System.String, System.Object>> | The parameters. |
Settings
Specify a method to configure each outgoing HTTP request associated specifically with this AML request
Declaration
public Action<IHttpRequest> Settings { get; set; }
Property Value
Type | Description |
---|---|
System.Action<IHttpRequest> |
Methods
| Improve this Doc View SourceAddAml(String)
Append a query to this request
Declaration
protected virtual void AddAml(string query)
Parameters
Type | Name | Description |
---|---|---|
System.String | query | Query to append |
ToNormalizedAml(IServerContext)
Perform parameter substitutions and return the resulting AML
Declaration
public string ToNormalizedAml(IServerContext context)
Parameters
Type | Name | Description |
---|---|---|
IServerContext | context | Localization context (e.g. from LocalizationContext) |
Returns
Type | Description |
---|---|
System.String | AML string |
ToNormalizedAml(IServerContext, TextWriter)
Perform parameter substitutions and return the resulting AML
Declaration
public void ToNormalizedAml(IServerContext context, TextWriter writer)
Parameters
Type | Name | Description |
---|---|---|
IServerContext | context | Localization context (e.g. from LocalizationContext) |
System.IO.TextWriter | writer | Writer to which AML is written |
ToNormalizedAml(IServerContext, XmlWriter)
Perform parameter substitutions and return the resulting AML
Declaration
public void ToNormalizedAml(IServerContext context, XmlWriter writer)
Parameters
Type | Name | Description |
---|---|---|
IServerContext | context | Localization context (e.g. from LocalizationContext) |
System.Xml.XmlWriter | writer | Writer to which AML is written |
ToString()
Return the AML string
Declaration
public override string ToString()
Returns
Type | Description |
---|---|
System.String |
Overrides
WithAction(CommandAction)
Fluent interface used to specify the SOAP action to use with the AML
Declaration
public Command WithAction(CommandAction action)
Parameters
Type | Name | Description |
---|---|---|
CommandAction | action | The SOAP action to send with the AML |
Returns
Type | Description |
---|---|
Command | The current command for chaining additional method calls |
WithAction(String)
Fluent interface used to specify the SOAP action to use with the AML (as a string)
Declaration
public Command WithAction(string action)
Parameters
Type | Name | Description |
---|---|---|
System.String | action | The SOAP action to send with the AML |
Returns
Type | Description |
---|---|
Command | The current command for chaining additional method calls |
WithAml(String, Object[])
Fluent interface used to specify the AML of the request. SQL Server style numbered AML parameters (used as attribute and element values) are replaced with the corresponding arguments. Property type conversion and XML formatting is performed
Declaration
public Command WithAml(string query, params object[] args)
Parameters
Type | Name | Description |
---|---|---|
System.String | query | Format string containing the parameters |
System.Object[] | args | Replacement values for the numbered parameters |
Returns
Type | Description |
---|---|
Command | The current command for chaining additional method calls |
WithLogListener(Action<Int32, String, IEnumerable<KeyValuePair<String, Object>>>)
Fluent interface used to specify a log listener to be called when logging data is recorded during the execution of this command
Declaration
public Command WithLogListener(Action<int, string, IEnumerable<KeyValuePair<string, object>>> listener)
Parameters
Type | Name | Description |
---|---|---|
System.Action<System.Int32, System.String, System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<System.String, System.Object>>> | listener | Callback to handle the logging of information. The parameters include the message level, message, and any relevant structured data |
Returns
Type | Description |
---|---|
Command | The current command for chaining additional method calls |
WithParam(String, Object)
Specify a named parameter and its value
Declaration
public Command WithParam(string name, object value)
Parameters
Type | Name | Description |
---|---|---|
System.String | name | Parameter name |
System.Object | value | Parameter value |
Returns
Type | Description |
---|---|
Command |
Operators
| Improve this Doc View SourceImplicit(String to Command)
Implicitly convert strings to commands as needed
Declaration
public static implicit operator Command(string aml)
Parameters
Type | Name | Description |
---|---|---|
System.String | aml |
Returns
Type | Description |
---|---|
Command |
Implicit(XElement to Command)
Implicitly convert XML elements to commands as needed
Declaration
public static implicit operator Command(XElement aml)
Parameters
Type | Name | Description |
---|---|---|
System.Xml.Linq.XElement | aml |
Returns
Type | Description |
---|---|
Command |