ArcGIS Pro 3.4 API Reference Guide
ArcGIS.Desktop.TaskAssistant Namespace / TaskItemInfo Class / GetTasks Method
Example Version

GetTasks Method
Gets the tasks of the task item.
Syntax
public IEnumerable<TaskInfo> GetTasks()

Return Value

An enumeration of TaskInfo objects.
Example
Get Task Information - from a TaskProjectItem
var taskItem = Project.Current.GetItems<TaskProjectItem>().FirstOrDefault();
// if there isn't a project task item, return
if (taskItem == null)
  return;

string message = await QueuedTask.Run(async () =>
{
  bool isOpen = taskItem.IsOpen;
  Guid taskGuid = taskItem.TaskItemGuid;

  string msg = "";
  try
  {
    TaskItemInfo taskItemInfo = await taskItem.GetTaskItemInfoAsync();

    msg = "Name : " + taskItemInfo.Name;
    msg += "\r\n" + "Description : " + taskItemInfo.Description;
    msg += "\r\n" + "Guid : " + taskItemInfo.Guid.ToString("B");
    msg += "\r\n" + "Task Count : " + taskItemInfo.GetTasks().Count();

    // iterate the tasks in the task item
    IEnumerable<TaskInfo> taskInfos = taskItemInfo.GetTasks();
    foreach (TaskInfo taskInfo in taskInfos)
    {
      string name = taskInfo.Name;
      Guid guid = taskInfo.Guid;

      // do something 
    }
  }
  catch (OpenTaskException e)
  {
    // exception thrown if task file doesn't exist or has incorrect format
    msg = e.Message;
  }
  catch (TaskFileVersionException e)
  {
    // exception thrown if task file does not support returning task information
    msg = e.Message;
  }
  return msg;
});

ArcGIS.Desktop.Framework.Dialogs.MessageBox.Show(message, "Task Information");
Get Task Information - from an .esriTasks file
// TODO - substitute your own .esriTasks file
string taskFile = @"c:\Tasks\Get Started.esriTasks";

string message = await QueuedTask.Run(async () =>
{
  string msg = "";
  try
  {
    // retrieve the task item information
    //At 2.x -
    //TaskItemInfo taskItemInfo = await TaskAssistantModule.GetTaskItemInfoAsync(taskFile);
    TaskItemInfo taskItemInfo = await TaskAssistantFactory.Instance.GetTaskItemInfoAsync(taskFile);

    msg = "Name : " + taskItemInfo.Name;
    msg += "\r\n" + "Description : " + taskItemInfo.Description;
    msg += "\r\n" + "Guid : " + taskItemInfo.Guid.ToString("B");
    msg += "\r\n" + "Task Count : " + taskItemInfo.GetTasks().Count();

  }
  catch (OpenTaskException e)
  {
    // exception thrown if task file doesn't exist or has incorrect format
    msg = e.Message;
  }
  catch (TaskFileVersionException e)
  {
    // exception thrown if task file does not support returning task information
    msg = e.Message;
  }
  return msg;
});

ArcGIS.Desktop.Framework.Dialogs.MessageBox.Show(message, "Task Information");
Open a specific Task in a Task File - .esriTasks file
// TODO - substitute your own .esriTasks file to be opened
string taskFile = @"c:\Tasks\Get Started.esriTasks";

await QueuedTask.Run(async () =>
{
  try
  {
    // retrieve the task item information
    //At 2.x -
    //TaskItemInfo taskItemInfo = await TaskAssistantModule.GetTaskItemInfoAsync(taskFile);
    var taskItemInfo = await TaskAssistantFactory.Instance.GetTaskItemInfoAsync(taskFile);

    // find the first task
    TaskInfo taskInfo = taskItemInfo.GetTasks().FirstOrDefault();

    Guid guid = Guid.Empty;
    if (taskInfo != null)
    {
      // if a task exists, open it
      //At 2.x -
      //guid = await TaskAssistantModule.OpenTaskAsync(taskFile, taskInfo.Guid);
      guid = await TaskAssistantFactory.Instance.OpenTaskFileAsync(taskFile, taskInfo.Guid);
    }
    else
    {
      // else just open the task item
      //At 2.x -
      //guid = await TaskAssistantModule.OpenTaskAsync(taskFile);
      guid = await TaskAssistantFactory.Instance.OpenTaskFileAsync(taskFile);
    }

    // TODO - retain the guid returned for use with CloseTaskItemAsync 
  }
  catch (OpenTaskException e)
  {
    // exception thrown if task file doesn't exist or has incorrect format
    ArcGIS.Desktop.Framework.Dialogs.MessageBox.Show(e.Message);
  }
  catch (TaskFileVersionException e)
  {
    // exception thrown if task file does not support returning task information
    ArcGIS.Desktop.Framework.Dialogs.MessageBox.Show(e.Message);
  }

});
Requirements

Target Platforms: Windows 11, Windows 10

ArcGIS Pro version: 3 or higher.
See Also