1

我正在制作一个 Web API 以将数据从 Project Online 获取到我的 C# 应用程序。我已经完成了连接并毫无问题地加载了我的时间表。现在,我的团队负责人要求我获取为登录用户安排的总工作量、剩余工作量以及时间表中显示的每个任务报告的工作量。如果您在选项功能区中选择“查看:我的工作”,则此信息在时间表页面中可见:工时- 创建任务时为用户安排的总工时实际工时- 为登录的用户报告的工作时间剩余工作- 用户任务中的剩余工作 我能够获得计划的总工作量,但不能获得其他两个属性。这是我到目前为止得到的代码:
项目时间表



context.Load(context.TimeSheetPeriods, c => c.Where(p => p.Start <= DateTime.Now && p.End >= DateTime.Now).
    IncludeWithDefaultProperties(p => p.TimeSheet,
                p => p.TimeSheet.Manager,
                p => p.TimeSheet.Manager.Email,
                p => p.TimeSheet.Lines.Where(
                    l => l.LineClass == TimeSheetLineClass.StandardLine).
                        IncludeWithDefaultProperties(l => l.Assignment,
                            l => l.Assignment.Owner.Email,
                            l => l.Assignment.Resource,
                            l => l.Assignment.Task,
                            l => l.Work)));
context.ExecuteQuery();
List<TimeSheetLine> linesList = myPeriod.TimeSheet.Lines.ToList();
foreach (TimeSheetLine x in linesList)
{
    Console.WriteLine("\nProject name: {0}; Task name: {1}; Work reported: {2}; " +
        "Planned work: {3};\n x.Assignment.RegularWork: {4}; x.Assignment.RemainingWork: {5}; x.Assignment.ActualWork: {6};",
        x.ProjectName, x.TaskName, x.Work.Where(w => w.Start.Date == DateTime.Now.Date).FirstOrDefault().ActualWork,
        x.Work.Where(w => w.Start.Date == DateTime.Now.Date).FirstOrDefault().PlannedWork,
        x.Assignment.RegularWork, x.Assignment.RemainingWork, x.Assignment.ActualWork);
}

最后一行是我的问题所在。x.Assignment.RegularWork给我工作,理论上x.Assignment.RemainingWork应该给我剩余工作x.Assignment.ActualWork实际工作。应该但它没有。这是控制台输出:

在此处输入图像描述
如您所见,x.Assignment.RegularWork与时间表中的Work匹配,但其他两个属性不匹配。尝试后尝试这是我得到的最接近的。谁能帮我一把?提前致谢。

4

0 回答 0