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)); }
public void Delete(WeekendPolicy entity) { try { weekenPolicyService.Delete(entity); } catch (Exception ex) { throw ex; } }
public void Update(WeekendPolicy entity) { try { weekenPolicyService.Add(entity); } catch (Exception ex) { throw ex; } }
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); }
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); }
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); }
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); }