public static WorkingDaysCalendar ChangeFromDto(WorkingDaysCalendar workingDays, WorkingDaysCalendar source)
 {
     workingDays.IsOff         = source.IsOff;
     workingDays.WorkEndTime   = source.WorkEndTime;
     workingDays.WorkStartTime = source.WorkStartTime;
     return(workingDays);
 }
        public void TypicalMondayIsAWorkingDay()
        {
            WorkingDaysCalendar calendar = new WorkingDaysCalendar();

            DateTime monday = new DateTime(2012, 3, 12);
            Assert.AreEqual(monday.DayOfWeek, DayOfWeek.Monday);

            Assert.IsTrue(calendar.IsWorkingDay(monday));
        }
        public void TypicalSundayIsANonWorkingDay()
        {
            WorkingDaysCalendar calendar = new WorkingDaysCalendar();

            DateTime sunday = new DateTime(2012, 3, 11);
            Assert.AreEqual(sunday.DayOfWeek, DayOfWeek.Sunday);

            Assert.IsFalse(calendar.IsWorkingDay(sunday));
        }
Esempio n. 4
0
 //проверить и дописать
 public List <WorkingDaysCalendar> SetDayOff(WorkingDaysCalendar calendar)
 {
     if (CheckNull(calendar))
     {
         DataBase.CalendarRepository.Create(calendar);
         DataBase.Save();
         return(GetWorkingDayCalendars());
     }
     return(null);
 }
        public void SetSaturdayAsAWorkingDay()
        {
            WorkingDaysCalendar calendar = new WorkingDaysCalendar();

            calendar.AddDayOfWeekAsWorkingDay(DayOfWeek.Saturday);

            DateTime saturday = new DateTime(2012, 3, 10);
            Assert.AreEqual(saturday.DayOfWeek, DayOfWeek.Saturday);

            Assert.IsTrue(calendar.IsWorkingDay(saturday));
        }
        public void SetMondayAsANonWorkingDay()
        {
            WorkingDaysCalendar calendar = new WorkingDaysCalendar();

            calendar.AddDayOfWeekAsNonWorkingDay(DayOfWeek.Monday);

            DateTime monday = new DateTime(2012, 3, 12);
            Assert.AreEqual(monday.DayOfWeek, DayOfWeek.Monday);

            Assert.IsFalse(calendar.IsWorkingDay(monday));
        }
        public void SetWeekendAsWorkingDaysAndMondayAsANonWorkingDay()
        {
            WorkingDaysCalendar calendar = new WorkingDaysCalendar();

            calendar.AddDayOfWeekAsWorkingDay(DayOfWeek.Saturday);
            calendar.AddDayOfWeekAsWorkingDay(DayOfWeek.Sunday);
            calendar.AddDayOfWeekAsNonWorkingDay(DayOfWeek.Monday);

            DateTime saturday = new DateTime(2012, 3, 10);
            Assert.AreEqual(saturday.DayOfWeek, DayOfWeek.Saturday);

            Assert.IsTrue(calendar.IsWorkingDay(saturday));
            Assert.IsTrue(calendar.IsWorkingDay(saturday.AddDays(1)));
            Assert.IsFalse(calendar.IsWorkingDay(saturday.AddDays(2)));
        }
        protected bool WorkDayCheck(Desk desk, DateTime date)
        {
            var workDays = desk.Room.BookingCalendars == null? null:desk.Room.BookingCalendars.Where(x => x.Date.Month == date.Month && x.Date.Day == date.Day && x.Date.Year == date.Year).ToArray();
            WorkingDaysCalendar currentDay = (workDays != null && workDays.Length != 0) ? workDays[0]:null;
            BookingInfo         bookingInfo;

            try
            {
                bookingInfo = UnitOfWork.BookingInfoRepository.ReadAll().ToArray()[0];
            }
            catch {
                return(false);
            }

            if (currentDay == null || !currentDay.IsOff)
            {
                DateTime now   = DateTime.Now;
                DateTime start = new DateTime(date.Year,
                                              date.Month,
                                              date.Day,
                                              bookingInfo.TimeOpenForBooking.Hours,
                                              bookingInfo.TimeOpenForBooking.Minutes,
                                              0)
                                 .AddDays(-bookingInfo.DaysOpenForBooking);
                DateTime end = new DateTime(date.Year,
                                            date.Month,
                                            date.Day,
                                            bookingInfo.TimeCloseForBooking.Hours,
                                            bookingInfo.TimeCloseForBooking.Minutes,
                                            0)
                               .AddDays(-bookingInfo.DaysCloseForBooking);
                if (now > start && now < end)
                {
                    return(true);
                }
            }

            return(false);
        }
        public void TypicalWeek()
        {
            WorkingDaysCalendar calendar = new WorkingDaysCalendar();

            DateTime monday = new DateTime(2012, 3, 12);
            Assert.AreEqual(monday.DayOfWeek, DayOfWeek.Monday);

            Assert.IsTrue(calendar.IsWorkingDay(monday));
            Assert.IsTrue(calendar.IsWorkingDay(monday.AddDays(1)));
            Assert.IsTrue(calendar.IsWorkingDay(monday.AddDays(2)));
            Assert.IsTrue(calendar.IsWorkingDay(monday.AddDays(3)));
            Assert.IsTrue(calendar.IsWorkingDay(monday.AddDays(4)));
            Assert.IsFalse(calendar.IsWorkingDay(monday.AddDays(5)));
            Assert.IsFalse(calendar.IsWorkingDay(monday.AddDays(6)));
        }