c - 尝试根据一个人的轮类模式计算休息日

标签 c telerik

我正在尝试为生病或休假的人找到时间段,并在 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/

相关文章:

asp.net-mvc - 在 Asp MVC Telerik Grid 和 Entity Framework 中处理枚举

asp.net - 如何从代码隐藏运行 telerik RadWindow

Telerik MVC 网格 : Row specific content in a HtmlAttributes

c# - 如何在 CodeBehind 的 DetailTable 中访问 FooterText (Telerik-RadGrid)?

c# - 如何使默认的 TreeView (System.Windows.Controls) 具有与 RadTreeView (telerik) 相同的样式?

c++ - C 相当于 new Object(constructor)

c - ( float )C 中的类型转换

c - linux中 "times"系统调用的返回值是什么

c - 如何用 ALSA 播放短音

C - 可以播放音乐吗?