private string PrepareScheduleValues(AutomaticScheduleDTO schedule) { var res = ""; if (schedule.ScheduleTypeId == (int)ScheduleTypesEnum.Monthly) { if (schedule.IsLastDayInMonth.HasValue && schedule.IsLastDayInMonth.Value) { res += "32,"; } if (schedule.IsFirstDayInMonth.HasValue && schedule.IsFirstDayInMonth.Value) { res += "1,"; } if (schedule.DayNumberInMonth.HasValue) { res += schedule.DayNumberInMonth.Value + ","; } } else if (schedule.ScheduleTypeId == (int)ScheduleTypesEnum.Weekly) { foreach (var item in schedule.WeeksDay) { res += item + ","; } } return(res.TrimEnd(',')); }
public AutomaticScheduleDTO GetScheduleFromEntity(ReportSchedule schedule) { var res = new AutomaticScheduleDTO(); res.ScheduleTypeId = schedule.ScheduleTypeId; if (schedule.ScheduleTypeId == (int)ScheduleTypesEnum.Monthly) { var tempList = schedule.ScheduleValues.Split(','); if (tempList.Any()) { foreach (var item in tempList) { if (item == "32") { res.IsLastDayInMonth = true; } else if (item == "1") { res.IsFirstDayInMonth = true; } else { int dayNum = 0; if (int.TryParse(item, out dayNum)) { res.DayNumberInMonth = dayNum; } } } } } else if (schedule.ScheduleTypeId == (int)ScheduleTypesEnum.Weekly) { var tempList = schedule.ScheduleValues.Split(','); if (tempList.Any()) { foreach (var item in tempList) { int dayNum = 0; if (int.TryParse(item, out dayNum)) { res.WeeksDay.Add(dayNum); // 0 Sunday } } } } res.SendHour = schedule.SendHour; return(res); }
private bool IsOnTime(AutomaticScheduleDTO schedule) { bool isTime = false; if (schedule != null && schedule.SendHour <= DateTime.Now.Hour) { if (schedule.ScheduleTypeId == (int)ScheduleTypesEnum.Daily) { isTime = true; } else if (schedule.ScheduleTypeId == (int)ScheduleTypesEnum.Weekly) { isTime = schedule.WeeksDay.Any(x => x == (int)DateTime.Now.DayOfWeek); } else if (schedule.ScheduleTypeId == (int)ScheduleTypesEnum.Monthly) { if (schedule.IsLastDayInMonth.HasValue && schedule.IsLastDayInMonth.Value) { if (DateTime.Now.Day == DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month)) { isTime = true; } } if (schedule.IsFirstDayInMonth.HasValue && schedule.IsFirstDayInMonth.Value) { if (DateTime.Now.Day == 1) { isTime = true; } } if (schedule.DayNumberInMonth.HasValue) { if (DateTime.Now.Day == schedule.DayNumberInMonth.Value) { isTime = true; } } } } return(isTime); }