ArcGIS Pro 3.7 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 Function GetTasks() As IEnumerable(Of TaskInfo)
    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 Home, Pro, Enterprise (64 bit)

    ArcGIS Pro version: 3.0 or higher.
    See Also