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

In This Topic
    GetTasks Method
    In This Topic
    Gets the tasks of the task item.
    Syntax
    public IEnumerable<TaskInfo> GetTasks()
    Public Function GetTasks() As IEnumerable(Of TaskInfo)

    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