Class PluginApi
Namespace: Casewhere.Runtime.DSL.Api
Assembly: Casewhere.Runtime.dll
public class PluginApi : IPluginApi, IDslApi
Inheritance
Implements
Inherited Members
object.ToString(), object.Equals(object), object.Equals(object, object), object.ReferenceEquals(object, object), object.GetHashCode(), object.GetType(), object.MemberwiseClone()
Extension Methods
ObjectExtension.ConvertToBsonValue(object), EnumExtensions.DeepClone<PluginApi>(PluginApi)
Constructors
PluginApi(IPluginMethodService, IPluginRuleValidation)
public PluginApi(IPluginMethodService pluginMethodService, IPluginRuleValidation pluginRuleValidation)
Parameters
pluginMethodService
IPluginMethodService
pluginRuleValidation
IPluginRuleValidation
Methods
Execute(string, string, Dictionary<string, string>)
Execute a plugin method. This method is deprecated and should only be used for legacy plugins.
public object Execute(string pluginName, string methodName, Dictionary<string, string> parameters)
Parameters
pluginName
string
Name of the plugin.
methodName
string
Invoked method name.
parameters
Dictionary<string, string>
Parameters passed to plugin.
Returns
Response data from plugin.
Examples
var parameters = new Dictionary<string, string>();
var parameters.Add("username", "msliteh");
var candidateObj = pluginApi.Execute("ExamplePlugin", "GetCandidateByUsername", parameters);
Invoke(string, string, IDictionary<string, object>)
Invoke a plugin method. This method cannot work with legacy plugins.
public PluginMethodResult Invoke(string pluginName, string methodName, IDictionary<string, object> parameters)
Parameters
pluginName
string
Name of the plugin.
methodName
string
Invoked method name.
parameters
IDictionary<string, object>
Parameters passed to plugin.
Returns
PluginMethodResult
A key-value data collection returned from plugin. Values must be simple type such as string, int, bool, DateTime, etc. User-defined objects are not supported and must be serialized to string before returned to Casewhere.
Examples
// Construct plugin parameters
var parameters = new Dictionary<string, object>();
parameters.Add("$skip", 10);
parameters.Add("$take", 10);
parameters.Add("$sortBy", "Gender");
parameters.Add("$asc", true);
// Invoke plugin method
var pluginApi = ctx.Use<IPluginApi>>();
var pluginResult = pluginApi.Invoke("ExamplePlugin", "SearchCandidates", parameters);
// Retrieve data from plugin results
var total = pluginResult.Get<int>("Total");
var candidates = pluginResult.GetArray("ActualData");