public void GetScheduleTimeFromSqlValuesTest() { const int sqlTime = 50607; var t = ScheduleHelper.GetScheduleTimeFromSqlValues(sqlTime); Assert.AreEqual(new TimeSpan(5, 6, 7), t); }
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; }
/// <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); }