我正在开发一个小代码,可以从数据库中读取一些值,以便为公司的所有员工制作时间表。
数据库的数据来自另一个应用程序,项目经理在其中定义所有任务更改,例如重新分配任务。
当任务以在项目任务定义开始时从项目经理设置的同一员工开始和结束时,该代码运行良好。
问题是当项目经理出于任何原因决定/需要更换与其他人一起执行任务的员工时。然后我遇到了新员工的时间表没有项目线以便用我的应用程序填写时间表的问题。
所以我的问题是: - 有没有办法将新行包含到新员工时间表中?
提前致谢。
编辑:
我想补充一下我是如何填写时间表的:
// 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 句子中,我创建了一个对象类型“TimeSheetWorkCreationInformation”,如果其中有任何工作行,我可以填写时间表。
当我们重新分配时,新资源的时间表没有新的工作线。
再次记住我的问题: - 有没有办法将新行包含到新员工时间表中?
谢谢