Table of Contents

Class PluginApi

Namespace: Casewhere.Runtime.DSL.Api
Assembly: Casewhere.Runtime.dll

public class PluginApi : IPluginApi, IDslApi

Inheritance

objectPluginApi

Implements

IPluginApi, IDslApi

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

object

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");