Table of Contents

Interface IPluginApi

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

Provides methods for interacting with Casewhere plugins.

public interface IPluginApi : IDslApi

Implements

IDslApi

Extension Methods

ObjectExtension.ConvertToBsonValue(object), EnumExtensions.DeepClone<IPluginApi>(IPluginApi)

Examples

var pluginApi = ctx.Use<IPluginApi>();
var pluginResult = pluginApi.Invoke("ExamplePlugin", "SearchCandidates", parameters);

Methods

Execute(string, string, Dictionary<string, string>)

Execute a plugin method. This method is deprecated and should only be used for legacy plugins.

[Obsolete("Should only use this method for old plugins")]
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.

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