我正在尝试为生病或休假的人找到时间段,并在 Telerik 调度程序组件中排除时间,我遇到的问题是多个资源,而不是仅仅突出显示一个人的所有资源
/// <summary>
/// Handles the TimeSlotCreated event of the apertureAppointments control.
/// </summary>
/// <param name="sender">The source of the event.</param>
/// <param name="e">The <see cref="TimeSlotCreatedEventArgs"/> instance containing the event data.</param>
protected void apertureAppointments_TimeSlotCreated(object sender, TimeSlotCreatedEventArgs e)
{
int i = 0;
bool isFound = false;
List<tblApertureNetShiftPattern> _list = new List<tblApertureNetShiftPattern>();
_list = _dal.getHolidays();
List<Resource> resources = new List<Resource>(apertureAppointments.Resources.GetResourcesByType("Managers"));
Resource res = resources[5];
foreach (tblApertureNetShiftPattern sp in _list)
{
if (_list.Count > 1)
i++;
else
i = 0;
DateTime? dt1 = _list[i].startdate;
DateTime? dt2 = _list[i].endDate;
if (sp.manager_name == "Adam Adair" && res.Text == "Adam Adair")
{
isFound = true;
if (DoDateRangesOverlap(e.TimeSlot.Start, e.TimeSlot.End, dt1, dt2) && isFound == true)
{
e.TimeSlot.CssClass = "UnavailableCssStyle";
dt1 = null;
dt2 = null;
isFound = false;
}
}
else if (sp.manager_name == "Clare Coyle" && res.Text == "Clare Coyle")
{
if (DoDateRangesOverlap(e.TimeSlot.Start, e.TimeSlot.End, dt1, dt2) && isFound == false)
{
e.TimeSlot.CssClass = "UnavailableCssStyle";
}
}
else if (sp.manager_name == "Christine Clarke" && res.Text == "Christine Clarke")
{
if (DoDateRangesOverlap(e.TimeSlot.Start, e.TimeSlot.End, dt1, dt2) && isFound == false)
{
e.TimeSlot.CssClass = "UnavailableCssStyle";
}
}
else if (sp.manager_name == "Conan Keenan" && res.Text == "Conan Keenan" && isFound == false)
{
if (DoDateRangesOverlap(e.TimeSlot.Start, e.TimeSlot.End, dt1, dt2) && isFound == false)
{
e.TimeSlot.CssClass = "UnavailableCssStyle";
}
}
else if (sp.manager_name == "Susie McCormick" && res.Text == "Susie McCormick")
{
if (DoDateRangesOverlap(e.TimeSlot.Start, e.TimeSlot.End, dt1, dt2) && isFound == false)
{
e.TimeSlot.CssClass = "UnavailableCssStyle";
}
}
}
}
其中只有一个条目 Adam Adair,但它却突出显示了关闭人员的所有单元格。
获取假期仅返回项目列表。
public List<tblApertureNetShiftPattern> getHolidays()
{
List<tblApertureNetShiftPattern> list = new List<tblApertureNetShiftPattern>();
var q = from _holidays in apertureNetEntities.tblApertureNetShiftPatterns.Where(w => w.isDeleted == false && w.isOff == true)
select _holidays;
list = q.ToList();
return list;
}
只有一条记录,admam adair 已关闭
最佳答案
我自己设法解决了这个问题,没有得到社区的太多帮助,最后很简单,我也没有检查该人的文本的时间段创建语句。
if (res.Text == "Adam Adair" && e.TimeSlot.Start == dt1 && e.TimeSlot.Resource.Text == "Adam Adair")
这里重要的补充是 e.TimeSlot.Resource.Text == "Adam Adair"
关于c - 尝试根据一个人的轮类模式计算休息日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36531278/