/// <summary>
 /// Initiate task
 /// </summary>
 /// <param name="at"></param>
 private void InitiateTransition(TaskShell at)
 {
     log.Info("Initiating transition {0}", at.TaskId);
     TransferDataToTransition(at);
     at.InitiateTask();
 }
 /// <summary>
 /// Initiate task
 /// </summary>
 /// <param name="at"></param>
 private void InitiateTransition(TaskShell at)
 {
     log.Info("Initiating transition {0}", at.TaskId);
     Debug.Assert(at.Tokens.Count > 0);
     foreach (string tokid in at.Tokens)
     {
         Token tok = GetToken(tokid);
         Debug.Assert(tok.Status == TokenStatus.READY || tok.Status == TokenStatus.WAITING || tok.Status == TokenStatus.LOCKED_ENABLED);
         Debug.Assert(tok.Status != TokenStatus.LOCKED_ENABLED || at.Tokens.Count == 1);
     }
     at.InitiateTask(GetProcessDataSource());
 }