Table of Contents

Class PluginTestApi

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

public class PluginTestApi : IPluginApi, IDslApi

Inheritance

objectPluginTestApi

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<PluginTestApi>(PluginTestApi)

Constructors

PluginTestApi(IPluginApi, IPluginMethodService, IPluginRuleValidation, IWorkflowSimulator, IPluginTestScenarioManager)

public PluginTestApi(IPluginApi next, IPluginMethodService pluginMethodService, IPluginRuleValidation pluginRuleValidation, IWorkflowSimulator workflowSimulator, IPluginTestScenarioManager pluginTestScenarioManager)

Parameters

next IPluginApi

pluginMethodService IPluginMethodService

pluginRuleValidation IPluginRuleValidation

workflowSimulator IWorkflowSimulator

pluginTestScenarioManager IPluginTestScenarioManager

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