IDslCompilerContext Interface

This interface will provide a list of function that helps user create the data to data object for each levels in the system.

Definition

Namespace: Casewhere.Runtime.DSL.CompilerContext
Assembly: Casewhere.Runtime (in Casewhere.Runtime.dll) Version: 2.9.8.6
C#
public interface IDslCompilerContext

Properties

Activity The Activity in Context.
Case The Case in Context.
FormData The Form ActualData in context.
Input Workflow input object. If there is multiple objects, it references the first one.
Inputs Workflow input objects.
Output Using this property to get/set Output value object for the workflow in the current context.
Parameters The parameters are parsed from the query string of the web trigger request

Example

Assume that a dynamic web trigger has the friendly uri: employee/info
Then a request for that trigger is: employee/info?isActive=true&from=2020-07-27
C#
var dataApi = ctx.Use<IDataApi>();
var @from = ctx.Parameters.Get<DateTime>("from");
var isActive = ctx.Parameters["isActive"];
var filter = FilterBuilder.Create().Eq("Active", isActive)
                                      .Gt("CreatedAt", @from)
                                      .Build();
var result = dataApi.Search(DataObjectApiQuery
                    .For("Employee")
                    .FilterBy(filter));
var employee  = result.Data.FirstOrDefault();
ctx.Output = employee;
RouteParameters The route parameters are parsed from the url of the web trigger request

Example

Assume that a dynamic web trigger has the friendly uri: employee/info/{code}
Then a request for that trigger is: employee/info/DEV-123
C#
var dataApi = ctx.Use<IDataApi>();
var employeeCode = ctx.RouteParameters.Get<string>("code");
var filter = FilterBuilder.Create().Eq("Active", true)
                                      .Eq("Code", employeeCode)
                                      .Build();
var result = dataApi.Search(DataObjectApiQuery
                    .For("Employee")
                    .Paging(0, 1)
                    .FilterBy(filter));
var employee  = result.Data.FirstOrDefault();
ctx.Output = employee;
User The User in context.
WorkerSite The WorkerSite in Context
Workflow The Workflow in Context.
WorkflowContext The context object.

Methods

AddDataObject Obsolete
AttachToDataSource Links a ActualData Object that is created in Scripted Activity to a Workflow ActualData Source so it can be used in Form Activity.
BadData Throw an exception when the data is in invalid state
CommitChanges Saves all changes made in this context to the underlying database.
DeleteDataObject(Object) Obsolete
DeleteDataObject(String, Object) Obsolete
Emit Emit data with event name
Error Throw an exception with custom error message.
FindDataObject(String, DataObjectExpression) Obsolete
FindDataObject(String, DataObjectExpression, Int32, Int32) Obsolete
ForceEmit Force emit data with event name
Get(String) Get value object by name.
GetT(String) Get value by name.
GetDataObject Obsolete
GetDataObjectById Obsolete
GetDataObjects Obsolete
GetTempT Get value by name in a context workflow. Throw an exception when key is not existed yet.
Has Determines if a variable exists in the workflow.
HasTempKey Determines if a temporary key exists in the current workflow context.
HasValue Determines if a variable exists in the workflow and it has value e.g. not empty string, not empty array, etc.
LoadDataObject(String, DataLoadingScope) Obsolete
LoadDataObject(String, Object) Obsolete
LoadDataObjectById Obsolete
LoadDataObjects Obsolete
NotFound Throw an exception when the object is not present.
Ref(String) Get the data object is being referenced.
Ref(String, String) Set value for a context reference.
SearchDataObjects(String, DataObjectExpression) Obsolete
SearchDataObjects(String, DataObjectExpression, Int32, Int32) Obsolete
Set Set value for a context variable.
SetDataSource Set a ActualData Object that is created in Scripted Activity to a Workflow ActualData Source so it can be used in Form Activity.
SetTemp Set temporary value in a context workflow. The value only maintaines in memory and will not be persisted to database.
Unauthorized Throw an exception when the user lacking permission
UpdateDataObject(Object, Object) Obsolete
UpdateDataObject(String, Object, Object) Obsolete
UseTApi Factory method to create API objects.
UseIOApiTIOApi Obsolete

See Also