我开发了一个小代码,可以从数据库中读取一些值,以便为公司的所有员工执行Timesheets。
数据库的数据来自另一个应用程序,其中项目经理定义所有任务更改,如重新分配任务。
当任务开始时,代码运行良好,并以项目任务定义开始时从项目管理器设置的同一员工结束。
问题在于项目经理出于任何原因决定/需要更改正在执行任务的员工。然后我遇到的问题是,新员工的时间表没有项目行,以便用我的应用填充时间表。
所以我的问题是: - 有没有办法将新行包含在新员工时间表中?
提前致谢。
修改
我想补充一下我如何填写时间表:
// I'm getting my period here --> Before I authenticate the user against Project Context
var myPeriod = projContext.TimeSheetPeriods.FirstOrDefault();
foreach (var l in myPeriod.TimeSheet.Lines)
{
for (int i = 0; i < TimesheetTaskId.Count; i++)
{
projContext.Load(projContext.Projects);
projContext.ExecuteQuery();
var proj = projContext.Projects.First(p => p.Id == Guid.Parse(projectid.ElementAt(i)));
projContext.ExecuteQuery();
if (l.Id == Guid.Parse(TimesheetTaskId.ElementAt(i)))
{
for (int x = 0; x < taskid.Count; x++)
{
draftProj = proj.CheckOut();
var plannedwork = l.Work.Where(w => w.Id == Guid.Parse(TimesheetTaskId.ElementAt(i))).FirstOrDefault();
TimeSheetWorkCreationInformation workCreation = new TimeSheetWorkCreationInformation
{
ActualWork = string.Format("{0}h", actualwork.ElementAt(x)), // Worked hours
Start = date.ElementAt(x),
End = date.ElementAt(x),
Comment = "From CSOM",
NonBillableOvertimeWork = "0",
NonBillableWork = "0",
OvertimeWork = "0",
PlannedWork = plannedwork == null ? "0h" : plannedwork.PlannedWork
};
l.Work.Add(workCreation);
myPeriod.TimeSheet.Update();
}
}
draftProj.CheckIn(true);
}
}
正如您所看到的,在foreach句子中我创建了一个对象类型&#39; TimeSheetWorkCreationInformation&#39;如果有任何工作线,我可以填写时间表。
当我们进行重新分配时,新资源的时间表没有新工作线。
再次记住我的问题: - 有没有办法将新行包含在新员工时间表中?
由于