protected void UpdateTransitionVariable(ISystemContext context, uint transitionId, FiniteTransitionVariableState variable)
{
if (variable == null)
{
return;
}
if (transitionId == 0)
{
variable.Value = null;
variable.Id.Value = null;
if (variable.TransitionTime != null)
{
variable.TransitionTime.Value = DateTime.MinValue;
}
if (variable.Number != null)
{
variable.Number.Value = 0;
}
return;
}
ElementInfo[] transitionTable = TransitionTable;
if (transitionTable == null)
{
return;
}
for (int ii = 0; ii < transitionTable.Length; ii++)
{
ElementInfo transition = transitionTable[ii];
if (transition.Id == transitionId)
{
variable.Value = transition.Name;
variable.Id.Value = new NodeId(transition.Id, ElementNamespaceIndex);
if (variable.TransitionTime != null)
{
variable.TransitionTime.Value = DateTime.UtcNow;
}
if (variable.Number != null)
{
variable.Number.Value = transition.Number;
}
return;
}
}
}
#endregion