Ejemplo n.º 1
0
        private static CalendarMonth TweakBy(
            this CalendarMonth calendarMonth,
            int amount,
            CalendarMonthComponent componentToTweak)
        {
            if (componentToTweak == CalendarMonthComponent.Month)
            {
                var referenceMonth = new DateTime(calendarMonth.Year, (int)calendarMonth.MonthOfYear, 1);

                var updatedMonth = referenceMonth.AddMonths(amount);

                var result = new CalendarMonth(updatedMonth.Year, (MonthOfYear)updatedMonth.Month);

                return(result);
            }

            if (componentToTweak == CalendarMonthComponent.Year)
            {
                var result = new CalendarMonth(calendarMonth.Year + amount, calendarMonth.MonthOfYear);

                return(result);
            }

            throw new NotSupportedException("this calendar month component is not supported: " + componentToTweak);
        }
        private static CalendarMonth TweakComponentOfCalendarMonth(this CalendarMonth calendarMonth, CalendarMonthComponent componentToTweak)
        {
            if (componentToTweak == CalendarMonthComponent.Month)
            {
                var tweakedMonth = A.Dummy <MonthOfYear>().ThatIsNot(calendarMonth.MonthOfYear);
                var result       = new CalendarMonth(calendarMonth.Year, tweakedMonth);
                return(result);
            }

            if (componentToTweak == CalendarMonthComponent.Year)
            {
                var tweakedYear = A.Dummy <PositiveInteger>().ThatIs(y => y != calendarMonth.Year && y <= 9999);
                var result      = new CalendarMonth(tweakedYear, calendarMonth.MonthOfYear);
                return(result);
            }

            throw new NotSupportedException("this calendar month component is not supported: " + componentToTweak);
        }