public IDateProjection Weekly(int periodCount, EDaysOfWeekFlags daysOfWeek) { return(new WeeklyProjection() { DaysOfWeek = daysOfWeek, WeekCount = periodCount }); }
public static bool HasOnlyWeekendDays(this EDaysOfWeekFlags daysOfWeek, bool allowNone) { if (allowNone && daysOfWeek == EDaysOfWeekFlags.None) { return(true); } return((WeekendDays & daysOfWeek) != 0 && (WeekDays & daysOfWeek) == 0); }
public void GetPreviousDayOfWeekIsNoneException() { int weekCount = 2; EDaysOfWeekFlags daysOfWeek = EDaysOfWeekFlags.None; DateProjection dateProjection = DateProjection(weekCount, daysOfWeek); Assert.That(() => dateProjection.GetPrevious(new DateTime(2017, 2, 28)), Throws.TypeOf <InvalidOperationException>()); }
public void GetPrevious() { int weekCount = 2; EDaysOfWeekFlags daysOfWeek = EDaysOfWeekFlags.Monday; DateProjection dateProjection = DateProjection(weekCount, daysOfWeek); Assert.That(dateProjection.GetPrevious(new DateTime(2017, 2, 28)), Is.EqualTo(new DateTime(2017, 2, 20))); }
public void GetNextWeekCountLessThan1Exception() { int weekCount = 0; EDaysOfWeekFlags daysOfWeek = EDaysOfWeekFlags.Monday; DateProjection dateProjection = DateProjection(weekCount, daysOfWeek); Assert.That(() => dateProjection.GetNext(new DateTime(2017, 2, 28)), Throws.TypeOf <InvalidOperationException>()); }
public static HashSet <EDaysOfWeekExt> ConvertFrom(EDaysOfWeekFlags daysOfWeek) { HashSet <EDaysOfWeekExt> retVal = new HashSet <EDaysOfWeekExt>(); foreach (EDaysOfWeekFlags d in DaysOfWeekFlags.AsSeperateValues(daysOfWeek)) { retVal.Add((EDaysOfWeekExt)Enum.Parse(typeof(EDaysOfWeekExt), Enum.GetName(typeof(EDaysOfWeekFlags), d))); } return(retVal); }
public static EDaysOfWeekFlags ConvertFrom(IEnumerable <EDaysOfWeek> daysOfWeek) { EDaysOfWeekFlags retVal = EDaysOfWeekFlags.None; foreach (EDaysOfWeek day in daysOfWeek) { retVal |= ConvertFrom(day); } return(retVal); }
private static DateProjection DateProjection(int weekCount, EDaysOfWeekFlags daysOfWeek) { var projection = new WeeklyProjection() { WeekCount = weekCount, DaysOfWeek = daysOfWeek, }; var dateProjection = new DateProjection(projection); return(dateProjection); }
public void ConvertFromEveryDaysOfWeekExt() { EDaysOfWeekFlags daysOfWeekFlags = DaysOfWeekFlags.ConvertFrom(EDaysOfWeekExt.EveryDay); Assert.That((daysOfWeekFlags & EDaysOfWeekFlags.Monday) != EDaysOfWeekFlags.None, Is.True); Assert.That((daysOfWeekFlags & EDaysOfWeekFlags.Tuesday) != EDaysOfWeekFlags.None, Is.True); Assert.That((daysOfWeekFlags & EDaysOfWeekFlags.Wednesday) != EDaysOfWeekFlags.None, Is.True); Assert.That((daysOfWeekFlags & EDaysOfWeekFlags.Thursday) != EDaysOfWeekFlags.None, Is.True); Assert.That((daysOfWeekFlags & EDaysOfWeekFlags.Friday) != EDaysOfWeekFlags.None, Is.True); Assert.That((daysOfWeekFlags & EDaysOfWeekFlags.Saturday) != EDaysOfWeekFlags.None, Is.True); Assert.That((daysOfWeekFlags & EDaysOfWeekFlags.Sunday) != EDaysOfWeekFlags.None, Is.True); }
public static HashSet <EDaysOfWeekFlags> AsSeperateValues(this EDaysOfWeekFlags daysOfWeek) { HashSet <EDaysOfWeekFlags> retVal = new HashSet <EDaysOfWeekFlags>(); foreach (EDaysOfWeekFlags d in Enum.GetValues(typeof(EDaysOfWeekFlags))) { if ((daysOfWeek & d) != 0) { retVal.Add(d); } } return(retVal); }
public void ConvertFromDaysOfWeekExt() { List <EDaysOfWeekExt> everyDay = DaysOfWeekExt.WeekDays.Concat(DaysOfWeekExt.WeekendDays).ToList(); EDaysOfWeekFlags everyDayFlags = DaysOfWeekFlags.ConvertFrom(everyDay); Assert.That((everyDayFlags & EDaysOfWeekFlags.Monday) != EDaysOfWeekFlags.None, Is.True); Assert.That((everyDayFlags & EDaysOfWeekFlags.Tuesday) != EDaysOfWeekFlags.None, Is.True); Assert.That((everyDayFlags & EDaysOfWeekFlags.Wednesday) != EDaysOfWeekFlags.None, Is.True); Assert.That((everyDayFlags & EDaysOfWeekFlags.Thursday) != EDaysOfWeekFlags.None, Is.True); Assert.That((everyDayFlags & EDaysOfWeekFlags.Friday) != EDaysOfWeekFlags.None, Is.True); Assert.That((everyDayFlags & EDaysOfWeekFlags.Saturday) != EDaysOfWeekFlags.None, Is.True); Assert.That((everyDayFlags & EDaysOfWeekFlags.Sunday) != EDaysOfWeekFlags.None, Is.True); }
public void TranslateProjectionType() { const int periodCount = 1; const EMonth month = EMonth.February; const int dayOfMonth = 3; const EDaysOfWeekExt dayOfWeekExt = EDaysOfWeekExt.Thursday; const EDaysOfWeekFlags dayOfWeekFlags = EDaysOfWeekFlags.Friday; const EWeeksInMonth weekInMonth = EWeeksInMonth.Last; DateProjection prj = new DateProjection(EDateProjectionType.Daily) { PeriodCount = periodCount, Month = month, DayOfMonth = dayOfMonth, DaysOfWeekExt = dayOfWeekExt, DaysOfWeekFlags = dayOfWeekFlags, WeeksInMonth = weekInMonth, }; prj.ProjectionType = EDateProjectionType.Weekly; Assert.That(DateProjection.ToShortDescription(prj), Is.EqualTo("Weekly")); prj.ProjectionType = EDateProjectionType.Monthly; Assert.That(DateProjection.ToShortDescription(prj), Is.EqualTo("Monthly")); prj.ProjectionType = EDateProjectionType.MonthlyRelative; Assert.That(DateProjection.ToShortDescription(prj), Is.EqualTo("Monthly Relative")); prj.ProjectionType = EDateProjectionType.Yearly; Assert.That(DateProjection.ToShortDescription(prj), Is.EqualTo("Yearly")); prj.ProjectionType = EDateProjectionType.YearlyRelative; Assert.That(DateProjection.ToShortDescription(prj), Is.EqualTo("Yearly Relative")); prj.ProjectionType = EDateProjectionType.Daily; Assert.That(DateProjection.ToShortDescription(prj), Is.EqualTo("Daily")); Assert.That(prj.PeriodCount, Is.EqualTo(periodCount)); Assert.That(prj.Month, Is.EqualTo(month)); Assert.That(prj.DayOfMonth, Is.EqualTo(dayOfMonth)); Assert.That(prj.DaysOfWeekExt, Is.EqualTo(dayOfWeekExt)); Assert.That(prj.DaysOfWeekFlags, Is.EqualTo(dayOfWeekFlags)); Assert.That(prj.WeeksInMonth, Is.EqualTo(weekInMonth)); Assert.That(DateProjection.ToShortDescription(null), Is.EqualTo("None")); }
public static bool DateMatches(this DateTime date, EDaysOfWeekFlags dowFlags) { return((ConvertFrom(date.DayOfWeek) & dowFlags) != 0); }
public static bool HasOnlyWeekendDays(this EDaysOfWeekFlags daysOfWeek) { return(HasOnlyWeekendDays(daysOfWeek, false)); }
public TReturn WeeklyLeadTime(int periodCount, EDaysOfWeekFlags daysOfWeek) { this.Activity.LeadTime = new DateProjection(new DateProjectionCreateHelper().Weekly(periodCount, daysOfWeek)); return((TReturn)this); }