예제 #1
0
        public void GetScheduleTimeFromSqlValuesTest()
        {
            const int sqlTime = 50607;
            var       t       = ScheduleHelper.GetScheduleTimeFromSqlValues(sqlTime);

            Assert.AreEqual(new TimeSpan(5, 6, 7), t);
        }
예제 #2
0
 private static void SetBizProperties(ArticleScheduleDAL dataObject, ArticleScheduleTask task)
 {
     task.StartDate = ScheduleHelper.GetScheduleDateFromSqlValues(dataObject.ActiveStartDate, DateTime.Now.AddDays(1));
     task.StartTime = ScheduleHelper.GetScheduleTimeFromSqlValues(dataObject.ActiveStartTime, TimeSpan.MinValue);
     task.EndDate   = ScheduleHelper.GetScheduleDateFromSqlValues(dataObject.ActiveEndDate, DateTime.Now.AddDays(1));
     task.EndTime   = ScheduleHelper.GetScheduleTimeFromSqlValues(dataObject.ActiveEndTime, TimeSpan.MinValue);
     task.Duration  = dataObject.UseDuration == 1 ? ScheduleHelper.GetDuration(dataObject.DurationUnits, dataObject.Duration, task.StartDate) : task.EndTime - task.StartTime;
 }
예제 #3
0
        /// <summary>
        /// Преобразовать данные из БД в RecurringSchedule
        /// </summary>
        /// <param name="dal"></param>
        /// <returns></returns>
        private static RecurringSchedule ProceedDalToRecurringSchedule(ArticleScheduleDAL dal)
        {
            var result = RecurringSchedule.Empty;

            // Интервал повторений
            result.RepetitionStartDate = ScheduleHelper.GetScheduleDateFromSqlValues(dal.ActiveStartDate, DateTime.Now);
            result.RepetitionEndDate   = ScheduleHelper.GetScheduleDateFromSqlValues(dal.ActiveEndDate, result.GetDefaultRepetitionEndDate());
            if (result.RepetitionEndDate.Year == ArticleScheduleConstants.Infinity.Year)
            {
                result.RepetitionEndDate = result.GetDefaultRepetitionEndDate();
                result.RepetitionNoEnd   = true;
            }
            else
            {
                result.RepetitionNoEnd = false;
            }

            // Определение дней показа
            if (dal.FreqType == ScheduleFreqTypes.RecurringDaily) // день
            {
                result.ScheduleRecurringType  = ScheduleRecurringType.Daily;
                result.ScheduleRecurringValue = dal.FreqInterval;
            }
            else if (dal.FreqType == ScheduleFreqTypes.RecurringWeekly) // неделя
            {
                result.ScheduleRecurringType  = ScheduleRecurringType.Weekly;
                result.ScheduleRecurringValue = dal.FreqRecurrenceFactor;
                result.OnSunday    = (dal.FreqInterval & 1) == 1;
                result.OnMonday    = (dal.FreqInterval & 2) == 2;
                result.OnTuesday   = (dal.FreqInterval & 4) == 4;
                result.OnWednesday = (dal.FreqInterval & 8) == 8;
                result.OnThursday  = (dal.FreqInterval & 16) == 16;
                result.OnFriday    = (dal.FreqInterval & 32) == 32;
                result.OnSaturday  = (dal.FreqInterval & 64) == 64;
            }
            else if (dal.FreqType == ScheduleFreqTypes.RecurringMonthly || dal.FreqType == ScheduleFreqTypes.RecurringMonthlyRelative) // Month или MonthRelative
            {
                if (dal.FreqRecurrenceFactor % 12 == 0)                                                                                // Год
                {
                    result.ScheduleRecurringType  = ScheduleRecurringType.Yearly;
                    result.ScheduleRecurringValue = dal.FreqRecurrenceFactor / 12;
                    result.Month = result.RepetitionStartDate.Month;
                }
                else // Месяц
                {
                    result.ScheduleRecurringType  = ScheduleRecurringType.Monthly;
                    result.ScheduleRecurringValue = dal.FreqRecurrenceFactor;
                }

                if (dal.FreqType == ScheduleFreqTypes.RecurringMonthly) // Month
                {
                    result.DaySpecifyingType = DaySpecifyingType.Date;
                    result.DayOfMonth        = dal.FreqInterval;
                }
                else if (dal.FreqType == ScheduleFreqTypes.RecurringMonthlyRelative) // MonthRelative
                {
                    result.DaySpecifyingType = DaySpecifyingType.DayOfWeek;
                    result.WeekOfMonth       = (WeekOfMonth)dal.FreqRelativeInterval;
                    result.DayOfWeek         = (DayOfWeek)dal.FreqInterval;
                }
            }

            // Интервал времени показа
            result.ShowStartTime = ScheduleHelper.GetScheduleTimeFromSqlValues(dal.ActiveStartTime);
            if (dal.UseDuration == 0)
            {
                result.ShowLimitationType = ShowLimitationType.EndTime;
                result.ShowEndTime        = ScheduleHelper.GetScheduleTimeFromSqlValues(dal.ActiveEndTime);
            }
            else
            {
                result.ShowLimitationType = ShowLimitationType.Duration;
                result.DurationValue      = Convert.ToInt32(dal.Duration);
                result.DurationUnit       = ScheduleHelper.ParseDurationUnit(dal.DurationUnits);
            }

            return(result);
        }