Code not working to show busy time before shift starts

2 posts, 0 answers
  1. Philip
    Philip avatar
    69 posts
    Member since:
    Mar 2016

    Posted 19 Apr Link to this post

    While the following works for any time during an appoint ment i need to disable the times before a shift but its not working the way that it should do;.

    001.protected void apertureAppointments_TimeSlotCreated(object sender, TimeSlotCreatedEventArgs e)
    002.      {
    003.          int i = 0;
    004.          bool isFound = false;
    005.          List<tblApertureNetShiftPattern> _list = new List<tblApertureNetShiftPattern>();
    006.          _list = _dal.getHolidays();
    007.          List<Resource> resources = new List<Resource>(apertureAppointments.Resources.GetResourcesByType("Managers"));
    008.          Label slotlabel = new Label();
    009. 
    010.          foreach (tblApertureNetShiftPattern sp in _list)
    011.          {
    012.              DateTime dt1 = Convert.ToDateTime(sp.startdate);
    013.              DateTime dt2 = Convert.ToDateTime(sp.endDate);
    014. 
    015. 
    016.              if (e.TimeSlot.Start <= dt1 && e.TimeSlot.Resource.Text == sp.manager_name)
    017. 
    018.              {
    019. 
    020.                  e.TimeSlot.CssClass = "Disabled";
    021.                  slotlabel.CssClass = "Disabled";
    022. 
    023.              }
    024. 
    025.              if (e.TimeSlot.Start >= dt1 && e.TimeSlot.End <= dt2 && e.TimeSlot.Resource.Text == sp.manager_name)
    026.              {
    027.                
    028.                    if (DoDateRangesOverlap(e.TimeSlot.Start, e.TimeSlot.End, dt1, dt2))
    029.                  {
    030.                    
    031. 
    032.                      if(sp.appointmentType ==Constants.shiftsStartOfShift)
    033.                      {
    034. 
    035.                          e.TimeSlot.CssClass = "Disabled";
    036.                          slotlabel.CssClass = "Disabled";
    037. 
    038.                      }
    039. 
    040.                      if (sp.appointmentType == Constants.shiftStat)
    041.                          {
    042.                              e.TimeSlot.CssClass = "Disabled";
    043.                              slotlabel.CssClass = "Disabled";
    044. 
    045.                          }
    046. 
    047.                              if (sp.appointmentType == Constants.shfitsLunch)
    048.                          {
    049.                              e.TimeSlot.CssClass = "shiftlunchOff";
    050.                              slotlabel.CssClass = "shiftlunchOff";
    051.                              if (i == 1)
    052.                              {
    053.                                  slotlabel.Text = "Lunch";
    054. 
    055.                                  Image imageControl = new Image();
    056.                                  // imageControl.ImageUrl = @"~\images\aperturenet\Calendar\resources\holidays.png";
    057.                                  //    e.TimeSlot.Control.Controls.AddAt(1, imageControl);
    058. 
    059.                              }
    060.                          }
    061.                          if (sp.appointmentType == Constants.shiftDayoff)
    062.                          {
    063.                              e.TimeSlot.CssClass = "shiftDayOff";
    064. 
    065.                              slotlabel.CssClass = "shiftDayOff";
    066. 
    067.                              if (i == 1)
    068.                              {
    069.                                  slotlabel.Text = "Off test";
    070.                                  Image imageControl = new Image();
    071.                                  imageControl.ImageUrl = @"~\images\aperturenet\Calendar\resources\holidays.png";
    072.                                  e.TimeSlot.Control.Controls.AddAt(1, imageControl);
    073.                              }
    074.                          }
    075.                          else if (sp.appointmentType == Constants.shiftHoliday)
    076.                          {
    077.                              e.TimeSlot.CssClass = "HolidayCssStyle";
    078.                              slotlabel.CssClass = "HolidayCssStyle";
    079. 
    080.                              if (i == 1)
    081.                              {
    082.                                  slotlabel.Text = "Off";
    083.                                  Image imageControl = new Image();
    084.                                  imageControl.ImageUrl = @"~\images\aperturenet\Calendar\resources\holidays.png";
    085.                                  e.TimeSlot.Control.Controls.AddAt(1, imageControl);
    086.                              }
    087.                          }
    088.                          else if (sp.appointmentType == Constants.shiftStat)
    089.                          {
    090.                              e.TimeSlot.CssClass = "statCssStyle";
    091.                              slotlabel.CssClass = "statCssStyle";
    092.                              slotlabel.Text = "Off";
    093.                              if (i == 1)
    094.                              {
    095.                                  Image imageControl = new Image();
    096.                                  imageControl.ImageUrl = @"~\images\aperturenet\Calendar\resources\holidays.png";
    097.                                  e.TimeSlot.Control.Controls.AddAt(1, imageControl);
    098.                              }
    099.                          }
    100.                          else if (sp.appointmentType == Constants.shiftsickDay)
    101.                          {
    102. 
    103.                              e.TimeSlot.CssClass = "SickDayStyle";
    104.                              slotlabel.CssClass = "SickDayStyle";
    105. 
    106.                              if (i == 1)
    107.                              {
    108.                                  slotlabel.Text = "Sick";
    109.                                  Image imageControl = new Image();
    110.                                  imageControl.ImageUrl = @"~\images\aperturenet\Calendar\resources\Sick.png";
    111.                                  e.TimeSlot.Control.Controls.AddAt(1, imageControl);
    112.                              }
    113. 
    114. 
    115.                          }
    116.                       
    117.                      else
    118.                          i = i++;
    119.                      e.TimeSlot.Control.Controls.AddAt(1, slotlabel);
    120.                      dt2 = dt2.AddMinutes(60);
    121.                  }
    122.              }
    123.          }
    124.      }

     

    Basically all that get holidays do is return the shift patters for the resource

    01.public List<tblApertureNetShiftPattern> getHolidays()
    02.{
    03.    List<tblApertureNetShiftPattern> list = new List<tblApertureNetShiftPattern>();
    04. 
    05.    var q = from _holidays in apertureNetEntities.tblApertureNetShiftPatterns.Where(w => w.isDeleted == false)
    06.            select _holidays;
    07. 
    08.    list = q.ToList();
    09. 
    10.    return list;
    11.}

    But as you can see from the second screen shot its filling out every timeslot before that time not just the 9 am to 11 am  as it should be in realtion to the database I only use the appointment end type where the appointment type equals a sepcified guid.

     

     

  2. Nencho
    Admin
    Nencho avatar
    1458 posts

    Posted 22 Apr Link to this post

    Hello Philip,

    I am afraid that we would need some more details in order to investigate the reason for the inability to disable the exact timeslots. This is why, I would ask you to submit a support ticket, along with a runnable sample attached, demonstrating your current implementation.

    Once being able to investigate the entire implementation and replicate the problem we will be able to pin down the reason for it.

    Regards,
    Nencho
    Telerik
    Do you need help with upgrading your ASP.NET AJAX, WPF or WinForms projects? Check the Telerik API Analyzer and share your thoughts.
  3. UI for ASP.NET Ajax is Ready for VS 2017
Back to Top