public IDateProjection Weekly(int periodCount, EDaysOfWeekFlags daysOfWeek)
 {
     return(new WeeklyProjection()
     {
         DaysOfWeek = daysOfWeek, WeekCount = periodCount
     });
 }
Esempio n. 2
0
 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>());
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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);
        }
Esempio n. 9
0
        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);
        }
Esempio n. 10
0
        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);
        }
Esempio n. 11
0
        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"));
        }
Esempio n. 13
0
 public static bool DateMatches(this DateTime date, EDaysOfWeekFlags dowFlags)
 {
     return((ConvertFrom(date.DayOfWeek) & dowFlags) != 0);
 }
Esempio n. 14
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);
 }