如何使用描述创建计划任务?

时间:2018-02-18 12:22:36

标签: c# microsoft-graph

我正在使用带有.Net SDK的Microsoft Graph API。

我正在尝试创建一个新的PlannerTask,并在执行此操作时提供说明。

PlannerTask的描述在一个相关对象PlannerTaskDetails上,因此该对象是"只读"。

这似乎意味着要创建一个带有描述的PlannerTask,我必须至少进行两次调用。第一个调用创建PlannerTask,第二个调用更新PlannerTaskDetails。

要更新PlannerTaskDetails,需要一个电子标签。所以我使用Expand来请求在返回创建的PlannerTask时填充Details属性。但它返回无人居住(即无效)。

var task = await graphServiceClient
    .Planner
    .Tasks
    .Request()
    .Expand("Details")
    .AddAsync(plannerTask);

var taskPlannerDetailsETag = task.Details.GetEtag();

var taskDetails = await graphServiceClient
    .Planner
    .Tasks[task.Id]
    .Details
    .Request()
    .Header("If-Match", taskPlannerDetailsETag)
    .UpdateAsync(new PlannerTaskDetails()
    {
        Description = officeTask.Body
    });

接下来要尝试的是创建PlannerTask,然后进行第二次调用以检索PlannerTaskDetails,然后再进行第三次调用以更新PlannerTaskDetails。但我认为我必须接近这个错误,3次网络往返创建一个描述的单一任务似乎,很荒谬。

我做错了什么?

1 个答案:

答案 0 :(得分:2)

创建任务,阅读详细信息,然后更新详细信息是当前完成此方案的正确方法。请注意,在创建任务后立即读取详细信息可能会失败,因为处理是异步的,因此您应该添加一些重试逻辑以获得稳定的行为。我们正在努力改进此方案以简化流程。