Beispiel #1
0
        private List <DateTime> GetFreeTimesForPerson(List <DateTime> freeTimes, IWeekScheduler person)
        {
            List <DateTime> ret = new List <DateTime>();

            if (freeTimes == null)
            {
                //Zjistit volné časy pro objekt
                DateTime dateNow = DateFrom;
                while (dateNow <= DateTo.AddDays(1).AddHours(-1))
                {
                    if (dateNow.Hour < 7 || dateNow.Hour > 18)
                    {
                        dateNow = dateNow.AddHours(1);
                        continue;
                    }

                    var ev = person.EventInTime(dateNow);
                    if (ev == null)
                    {
                        ret.Add(dateNow);
                    }
                    dateNow = dateNow.AddHours(1);
                }
            }
            else if (freeTimes.Count == 0)
            {
                ret = null;
            }
            else
            {
                //Porovnat volné časy s časy objektu
                foreach (var dateNow in freeTimes)
                {
                    var ev = person.EventInTime(dateNow);
                    if (ev == null)
                    {
                        ret.Add(dateNow);
                    }
                }
            }
            return(ret);
        }
Beispiel #2
0
 /// <summary>
 /// Doplňující přetížená verze metody IWeekScheduler.EventInTime (pro zjednodušení volání).
 /// Namísto instance třídy WeekHour očekává běžnější representaci času – instanci třídy DateTime
 /// </summary>
 public static Event EventInTime(this IWeekScheduler scheduler,
                                 DateTime time)
 {
     return(scheduler.EventInTime(new WeekHour(time)));
 }