Class TurnState
Manages a collection of AgentState and provides ability to load and save in parallel.
public class TurnState : ITurnState
- Inheritance
-
TurnState
- Implements
- Inherited Members
Constructors
TurnState(params IAgentState[])
Initializes a new instance of the TurnState class.
public TurnState(params IAgentState[] agentStates)
Parameters
agentStates
IAgentState[]initial list of AgentState objects to manage.
TurnState(IStorage, params IAgentState[])
Creates AgentStateSet with default ConversationState and UserState
public TurnState(IStorage storage, params IAgentState[] agentStates)
Parameters
storage
IStorageagentStates
IAgentState[]Additional list of AgentState objects to manage.
Properties
Conversation
public ConversationState Conversation { get; }
Property Value
Private
public PrivateConversationState Private { get; }
Property Value
Temp
public TempState Temp { get; }
Property Value
User
public UserState User { get; }
Property Value
Methods
Add(IAgentState)
public TurnState Add(IAgentState agentState)
Parameters
agentState
IAgentState
Returns
ClearState(string)
Clears the state.
public void ClearState(string scope)
Parameters
scope
stringThe scope name. eg "conversation", etc...
Remarks
This method clears the state cache. Call SaveChangesAsync(ITurnContext, bool, CancellationToken) to persist this change in the storage layer.
DeleteValue(string)
Delete a property.
public void DeleteValue(string path)
Parameters
path
stringThe full path to the property: {scope}.{name}
GetScope(string)
public IAgentState GetScope(string scope)
Parameters
scope
string
Returns
GetScope<T>()
public T GetScope<T>()
Returns
- T
Type Parameters
T
GetValue<T>(string, Func<T>)
Get a property value.
public T GetValue<T>(string name, Func<T> defaultValueFactory = null)
Parameters
name
stringdefaultValueFactory
Func<T>Defines the default value. Invoked when no value been set for the requested state property. If defaultValueFactory is defined as null in that case, the method returns null.
Returns
- T
Type Parameters
T
HasValue(string)
Checks for the existence of a property.
public bool HasValue(string path)
Parameters
path
stringThe full path to the property: {scope}.{name}
Returns
LoadStateAsync(ITurnContext, bool, CancellationToken)
Load all AgentState records in parallel.
public Task LoadStateAsync(ITurnContext turnContext, bool force = false, CancellationToken cancellationToken = default)
Parameters
turnContext
ITurnContextturn context.
force
boolshould data be forced into cache.
cancellationToken
CancellationTokenA cancellation token that can be used by other objects or threads to receive notice of cancellation.
Returns
- Task
A task that represents the work queued to execute.
SaveStateAsync(ITurnContext, bool, CancellationToken)
Save All AgentState changes in parallel.
public Task SaveStateAsync(ITurnContext turnContext, bool force = false, CancellationToken cancellationToken = default)
Parameters
turnContext
ITurnContextturn context.
force
boolshould data be forced to save even if no change were detected.
cancellationToken
CancellationTokenA cancellation token that can be used by other objects or threads to receive notice of cancellation.
Returns
- Task
A task that represents the work queued to execute.
SetValue(string, object)
Set a property value.
public void SetValue(string path, object value)
Parameters
TryGetScope<T>(out T)
public bool TryGetScope<T>(out T value)
Parameters
value
T
Returns
Type Parameters
T