2016-04-10 13 views
-1

Tatildeyim veya tatil yapmakta olan kişiler için zaman aralıkları bulmaya çalışıyorum ve bir zaman çizelgesi bileşeninde zaman aşımına uğraşmaktayım. Sorun şu ki, sadece highligting yerine mutlple kaynaklarla karşılaşıyorum bütün bunlarıBir kişi vardiya düzenine bağlı olarak günlerini hesaplamak için çalışıyor

/// <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"; 
       } 
      } 
     } 
} 

için hlighing kapalı bir kişi hangi için yerine tek giriş Adam Adair ama kapalı kişi için onun highling tüm hücreler vardır.

Tatil yap, yalnızca bir öğe listesi döndürür.

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; 
} 

Sadece bir kaydıdır ve ben sonunda topluluktan çok yardım almadan bu kendim çözmek başardı

+0

Dont sadece oylama aşağı neden olarak bir açıklama e.TimeSlot.Resource.Text == "Adam Adair" nedir? ! Sorunun ne olduğunu ve şu ana kadar ne denediğimi gösterdim, bu yüzden neyin yanlış olduğu yanlış! – rogue39nin

+0

Burada, meta http://meta.stackexchange.com/questions/135/encouraging-people-to-explain-downvotes adresinde bir açıklama yapmalısınız. – rogue39nin

cevap

0

onun admam için Adair kapalı olacaktı i için zaman slotu oluşturulan deyimi kontrol ediyordu basit kişinin metni de. Burada

if (res.Text == "Adam Adair" && e.TimeSlot.Start == dt1 && e.TimeSlot.Resource.Text == "Adam Adair") 

önemli katkı

İlgili konular