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);
        }
        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);
        }
Пример #3
0
        public void IsNonWorkingDay_GivenHolidayPolicyIsNull_ThrowsException()
        {
            var policy = new NonWorkingDayPolicy(_weekendPolicy, null);

            policy.IsNonWorkingDay(DateTime.Today);
        }