Table of Contents

Interface ICounterApi

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

Provides methods for generating numbers.

public interface ICounterApi : IDslApi

Implements

IDslApi

Extension Methods

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

Examples

var counterApi = ctx.Use<ICounterApi>();
var orderNo = counterApi.Next("OrderNo");

Methods

Next(string)

Generate an auto-incremented integer for a given sequence.

int Next(string name)

Parameters

name string

Name of the counter.

Returns

int

The generated number.

Examples

var counterApi = ctx.Use<ICounterApi>();
// This example generates a new Order Number for the current year
var orderNo1 = counterApi.Next($"OrderNo_{DateTime.Now.Year}"); // return 1
var orderNo2 = counterApi.Next($"OrderNo_{DateTime.Now.Year}"); // return 2
var receiptNo = counterApi.Next($"ReceiptNo_{DateTime.Now.Year}"); // return 1

Next(string, int)

Generate an integer for a given sequence.

int Next(string name, int step)

Parameters

name string

Name of the counter.

step int

Increase number.

Returns

int

The generated number.

Examples

var counterApi = ctx.Use<ICounterApi>();
// This example generates a new Order Number for the current year
var orderNo1 = counterApi.Next($"OrderNo_{DateTime.Now.Year}", 5); // return 5
var orderNo2 = counterApi.Next($"OrderNo_{DateTime.Now.Year}", 5); // return 10
var receiptNo = counterApi.Next($"ReceiptNo_{DateTime.Now.Year}", 6); // return 6

Set(string, int)

Set the counter value.

void Set(string name, int value)

Parameters

name string

Name of the counter.

value int

The value.

Examples

var counterApi = ctx.Use<ICounterApi>();
// This example generates a new Order Number for the current year
counterApi.Next($"OrderNo"); // return 1
counterApi.Next($"OrderNo"); // return 2
counterApi.Set($"OrderNo", 1000); // set the counter value to 1000
counterApi.Next($"OrderNo"); // return 1001