public void SetUp()
 {
     _weekendPolicy = new WeekendPolicy();
     _weekendPolicy.AddWeekend(DayOfWeek.Saturday);
     _weekendPolicy.AddWeekend(DayOfWeek.Sunday);
     _holidayPolicy = new HolidayPolicy();
     _holidayPolicy.AddHoliday(new DateTime(2013, 1, 1));
     _policy = new NonWorkingDayPolicy(_weekendPolicy, _holidayPolicy);
 }
        public void IsNonWorkingDay_GivenFridayAndSundayAsWeekends_WhenPassSaturdayReturnsFalse()
        {
            var policy = new WeekendPolicy();

            policy.AddWeekend(DayOfWeek.Friday);
            policy.AddWeekend(DayOfWeek.Sunday);
            var date = new DateTime(2013, 6, 8);

            Assert.That(policy.IsNonWorkingDay(date), Is.EqualTo(false));
        }
Beispiel #3
0
 public void Delete(WeekendPolicy entity)
 {
     try
     {
         weekenPolicyService.Delete(entity);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Beispiel #4
0
 public void Update(WeekendPolicy entity)
 {
     try
     {
         weekenPolicyService.Add(entity);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Beispiel #5
0
        public void ShiftDate_GivenSaturdayAndSundayAsWeekendsAndPassSunday_ReturnsPreviousFirday()
        {
            var weekendPolicy = new WeekendPolicy();

            weekendPolicy.AddWeekend(DayOfWeek.Saturday);
            weekendPolicy.AddWeekend(DayOfWeek.Sunday);
            var dateShiftPolicy = new BackwardDateShiftPolicy(weekendPolicy);
            var sunday          = new DateTime(2013, 6, 9);
            var friday          = new DateTime(2013, 6, 7);

            Assert.That(dateShiftPolicy.ShiftDate(sunday), Is.EqualTo(friday));
        }
        public void ShiftDate_GivenSaturdayAndSundayAsWeekendsAndPassSaturday_ReturnsNextMonday()
        {
            var weekendPolicy = new WeekendPolicy();

            weekendPolicy.AddWeekend(DayOfWeek.Saturday);
            weekendPolicy.AddWeekend(DayOfWeek.Sunday);
            var dateShiftPolicy = new ForwardDateShiftPolicy(weekendPolicy);
            var saturday        = new DateTime(2013, 6, 8);
            var nextMonday      = new DateTime(2013, 6, 10);

            Assert.That(dateShiftPolicy.ShiftDate(saturday), Is.EqualTo(nextMonday));
        }
        public void IsNonWorkingDay_GivenSaturdayAndSundayAsWeekends_WhenPassMondayToFridayReturnsFalse()
        {
            var policy = new WeekendPolicy();

            policy.AddWeekend(DayOfWeek.Saturday);
            policy.AddWeekend(DayOfWeek.Sunday);

            // 3rd to 7th June 2013 are working days
            for (var day = 3; day <= 7; day++)
            {
                var date = new DateTime(2013, 6, day);
                Assert.That(policy.IsNonWorkingDay(date), Is.EqualTo(false));
            }
        }
        public DefaultScheduleConfigurationFactory()
        {
            _cultureInfo = new CultureInfo("ru-RU");
            var catalog = new AssemblyCatalog(Assembly.GetExecutingAssembly());

            _container = new CompositionContainer(catalog);
            var weekendPolicy = new WeekendPolicy();

            weekendPolicy.AddWeekend(DayOfWeek.Saturday);
            weekendPolicy.AddWeekend(DayOfWeek.Sunday);
            var holidayPolicy       = new HolidayPolicy();
            var nonWorkingDayPolicy = new NonWorkingDayPolicy(weekendPolicy, holidayPolicy);

            _container.ComposeExportedValue <INonWorkingDayPolicy>(nonWorkingDayPolicy);
        }
Beispiel #9
0
 public void Add(WeekendPolicy entity)
 {
     try
     {
         entity.IsMondayHalfDay    = entity.IsMondayHalfDay == null ? false : entity.IsMondayHalfDay;
         entity.IsSundayHalfDay    = entity.IsSundayHalfDay == null ? false : entity.IsSundayHalfDay;
         entity.IsTuesdayHalfDay   = entity.IsTuesdayHalfDay == null ? false : entity.IsTuesdayHalfDay;
         entity.IsWednesdayHalfDay = entity.IsWednesdayHalfDay == null ? false : entity.IsWednesdayHalfDay;
         entity.IsThursdayHalfDay  = entity.IsThursdayHalfDay == null ? false : entity.IsThursdayHalfDay;
         entity.IsFridayHalfDay    = entity.IsFridayHalfDay == null ? false : entity.IsFridayHalfDay;
         entity.IsSaturdayHalfDay  = entity.IsSaturdayHalfDay == null ? false : entity.IsSaturdayHalfDay;
         weekenPolicyService.Add(entity);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
        public OctopusScheduleConfigurationFactory(NonWorkingDateSingleton nonWorkingDate)
        {
            var catalog = new AssemblyCatalog(Assembly.GetExecutingAssembly());

            _container = new CompositionContainer(catalog);
            var weekendPolicy = new WeekendPolicy();

            weekendPolicy.AddWeekend((DayOfWeek)nonWorkingDate.WeekEndDay1);
            weekendPolicy.AddWeekend((DayOfWeek)nonWorkingDate.WeekEndDay2);
            var holidayPolicy = new HolidayPolicy();

            foreach (var pair in nonWorkingDate.PublicHolidays)
            {
                holidayPolicy.AddHoliday(pair.Key);
            }
            var nonWorkingDayPolicy = new NonWorkingDayPolicy(weekendPolicy, holidayPolicy);

            _container.ComposeExportedValue <INonWorkingDayPolicy>(nonWorkingDayPolicy);
        }
Beispiel #11
0
        public static double GetBusinessDays(DateTime StartDate, DateTime EndDate, WeekendPolicy weekendPolicy, List <HolidayList> holidayList)
        {
            DateTime[] holidaysList = new DateTime[holidayList.Count];
            for (int i = 0; i < holidayList.Count; i++)
            {
                DateTime date = holidayList[i].Date;
                holidaysList[i] = new DateTime(date.Year, date.Month, date.Day);
            }


            double calCBusinessDays = calcWeekendDays(StartDate, EndDate, weekendPolicy);//1 + ((EndDate - StartDate).TotalDays);

            foreach (var holiday in holidaysList)
            {
                DateTime _holiday = holiday.Date;
                if (StartDate <= _holiday && _holiday <= EndDate)
                {
                    calCBusinessDays--;
                }
            }

            return(calCBusinessDays);
        }
Beispiel #12
0
        public static double calcWeekendDays(DateTime StartDate, DateTime EndDate, WeekendPolicy weekendPolicy)
        {
            double calCBusinessDays = 1 + ((EndDate - StartDate).TotalDays);

            for (DateTime date = StartDate; date.Date <= EndDate.Date; date = date.AddDays(1))
            {
                if (date.DayOfWeek == DayOfWeek.Monday)
                {
                    if (weekendPolicy.IsMondayHalfDay.Value)
                    {
                        calCBusinessDays = calCBusinessDays - 0.5;
                    }
                    else if (weekendPolicy.Monday.Value)
                    {
                        calCBusinessDays--;
                    }
                }
                if (date.DayOfWeek == DayOfWeek.Tuesday)
                {
                    if (weekendPolicy.IsTuesdayHalfDay.Value)
                    {
                        calCBusinessDays = calCBusinessDays - 0.5;
                    }
                    else if (weekendPolicy.Tuesday.Value)
                    {
                        calCBusinessDays--;
                    }
                }
                if (date.DayOfWeek == DayOfWeek.Wednesday)
                {
                    if (weekendPolicy.IsWednesdayHalfDay.Value)
                    {
                        calCBusinessDays = calCBusinessDays - 0.5;
                    }
                    else if (weekendPolicy.Wednesday.Value)
                    {
                        calCBusinessDays--;
                    }
                }
                if (date.DayOfWeek == DayOfWeek.Thursday)
                {
                    if (weekendPolicy.IsThursdayHalfDay.Value)
                    {
                        calCBusinessDays = calCBusinessDays - 0.5;
                    }
                    else if (weekendPolicy.Thursday.Value)
                    {
                        calCBusinessDays--;
                    }
                }
                if (date.DayOfWeek == DayOfWeek.Friday)
                {
                    if (weekendPolicy.IsFridayHalfDay.Value)
                    {
                        calCBusinessDays = calCBusinessDays - 0.5;
                    }
                    else if (weekendPolicy.Friday.Value)
                    {
                        calCBusinessDays--;
                    }
                }
                if (date.DayOfWeek == DayOfWeek.Saturday)
                {
                    if (weekendPolicy.IsSaturdayHalfDay.Value)
                    {
                        calCBusinessDays = calCBusinessDays - 0.5;
                    }
                    else if (weekendPolicy.Saturday.Value)
                    {
                        calCBusinessDays--;
                    }
                }
                if (date.DayOfWeek == DayOfWeek.Sunday)
                {
                    if (weekendPolicy.IsSundayHalfDay.Value)
                    {
                        calCBusinessDays = calCBusinessDays - 0.5;
                    }
                    else if (weekendPolicy.Sunday.Value)
                    {
                        calCBusinessDays--;
                    }
                }
            }

            return(calCBusinessDays);
        }