public async Task <ActionResult> Save(ScheduleMonthViewModel model) { using (ScheduleMonthServiceClient client = new ScheduleMonthServiceClient()) { ScheduleMonth obj = new ScheduleMonth() { Key = new ScheduleMonthKey() { LocationName = model.LocationName, RouteOperationName = model.RouteOperationName, Year = model.Year, Month = model.Month }, ScheduleName = model.ScheduleName, Editor = User.Identity.Name, EditTime = DateTime.Now, CreateTime = DateTime.Now, Creator = User.Identity.Name }; MethodReturnResult rst = await client.AddAsync(obj); if (rst.Code == 0) { rst.Message = string.Format(FMMResources.StringResource.ScheduleMonth_Save_Success , obj.Key); } return(Json(rst)); } }
/// <summary> /// Constructor for a yearly schedule /// </summary> /// <param name="StartMonth"></param> /// <param name="StartDate">The date, value between 1-31</param> /// <param name="StartTime"></param> /// <param name="EndMonth"></param> /// <param name="EndDate">The date, value between 1-31</param> /// <param name="Endtime"></param> public ICalendar(ScheduleMonth StartMonth, int StartDate, ScheduleTime StartTime, ScheduleMonth EndMonth, int EndDate, ScheduleTime Endtime) : this( ScheduleFrequency.YEARLY, new DateTime(1970, (int)StartMonth, StartDate, StartTime.Hour, StartTime.Minutes, StartTime.Seconds), new DateTime(1970, (int)EndMonth, EndDate, Endtime.Hour, Endtime.Minutes, Endtime.Seconds) ) { }
public void TestScheduleDay() { var month = new ScheduleMonth(2017, 02, holidays); var day = month.GetScheduleDay(10); Assert.IsFalse(day.IsRestday); Assert.IsFalse(day.IsHoliday); Assert.IsFalse(day.IsPreHoliday); var smenDay = day[SmenaName.Day]; Assert.AreEqual((int)smenDay.WorkHours, 8); Assert.IsFalse(smenDay.IsNight); var smenA = day[SmenaName.A]; Assert.AreEqual((int)smenA.WorkHours, 0); Assert.IsFalse(smenA.IsNight); var smenaB = day[SmenaName.B]; Assert.AreEqual((int)smenaB.WorkHours, 12); Assert.IsTrue(smenaB.IsNight); var smenaC = day[SmenaName.V]; Assert.AreEqual((int)smenaC.WorkHours, 12); Assert.IsFalse(smenaC.IsNight); var smenaD = day[SmenaName.G]; Assert.AreEqual((int)smenaD.WorkHours, 0); Assert.IsFalse(smenaD.IsNight); }
private static Rotation FindUnassignedRotation(Schedule schedule, out ScheduleMonth monthOut) { foreach (ScheduleMonth month in schedule.Months) { foreach (Rotation rotation in month.Rotations) { if (!rotation.RotationType.HasValue) { monthOut = month; return(rotation); } } } throw new Exception("No unassigned rotations to be found."); }
public void TestPreHoliday() { var holidays = new Dictionary <DateTime, string> { { new DateTime(2015, 03, 08), "бабский день" } }; var month = new ScheduleMonth(2015, 03, holidays); var day = month.GetScheduleDay(07); Assert.IsTrue(day.IsRestday); Assert.IsFalse(day.IsHoliday); Assert.IsTrue(day.IsPreHoliday); var smenDay = day[SmenaName.Day]; Assert.AreEqual((int)smenDay.WorkHours, 0); Assert.IsFalse(smenDay.IsNight); }
/// <summary> /// Constructor /// </summary> public MonthSchedule(string configxml) { XmlDocument configXml = new XmlDocument(); configXml.LoadXml(configxml); base.type = ExtractScheduleType(configXml); if (base.type != ScheduleType.Monthly) { throw (new ApplicationException("Invalid Configuration Type")); } this.StartDate = ExtractDate(configXml, "/schedule/startdate", true); this.StartTime = ExtractTime(configXml, "/schedule/starttime", true); this.Day = IfExistsExtractInt(configXml, "/schedule/dayofmonth", 0); if (this.Day == 0) { this.Ordinal = ExtractScheduleOrdinal(configXml, "/schedule/ordinal", true); this.WeekDay = ExtractScheduleDay(configXml, "/schedule/weekday", true); } this.ScheduledMonths = ExtractScheduleMonth(configXml, "/schedule/months", true); }
public bool Apply() { if (!Validate()) { return(false); } this.adapterConfiguration.Name = this.textScheduleName.Text; this.adapterConfiguration.Uri = string.Format("schedule://{0}/{1}", this.comboScheduleType.SelectedItem, this.textScheduleName.Text); this.adapterConfiguration.SuspendMessage = this.checkSuspendMessage.Checked; #region Schedule Schedule schedule = null; switch ((ScheduleType)this.comboScheduleType.SelectedItem) { case ScheduleType.TimeSpan: schedule = new TimeSpanSchedule(); schedule.StartDate = this.dateStartDate.Value; schedule.StartTime = this.dateStartTime.Value; int interval = 0; switch ((ScheduleTimeUnit)this.comboTimeUnits.SelectedItem) { case ScheduleTimeUnit.Seconds: interval = Convert.ToInt32(this.updownTimeInterval.Value); break; case ScheduleTimeUnit.Minutes: interval = Convert.ToInt32(this.updownTimeInterval.Value * 60); break; case ScheduleTimeUnit.Hours: interval = Convert.ToInt32(this.updownTimeInterval.Value * 3600); break; default: interval = 3600; break; } ((TimeSpanSchedule)schedule).Interval = interval; break; case ScheduleType.Daily: schedule = new DaySchedule(); schedule.StartDate = this.dateStartDate.Value; schedule.StartTime = this.dateStartTime.Value; if (radioDayInterval.Checked) { ((DaySchedule)schedule).Interval = Convert.ToInt32(this.updownDayInterval.Value); ((DaySchedule)schedule).ScheduledDays = ScheduleDay.None; } else { ScheduleDay days = ScheduleDay.None; if (checkDaySunday.Checked) { days |= ScheduleDay.Sunday; } if (checkDayMonday.Checked) { days |= ScheduleDay.Monday; } if (checkDayTuesday.Checked) { days |= ScheduleDay.Tuesday; } if (checkDayWednesday.Checked) { days |= ScheduleDay.Wednesday; } if (checkDayThursday.Checked) { days |= ScheduleDay.Thursday; } if (checkDayFriday.Checked) { days |= ScheduleDay.Friday; } if (checkDaySaturday.Checked) { days |= ScheduleDay.Saturday; } ((DaySchedule)schedule).ScheduledDays = days; ((DaySchedule)schedule).Interval = 0; } break; case ScheduleType.Weekly: schedule = new WeekSchedule(); schedule.StartDate = this.dateStartDate.Value; schedule.StartTime = this.dateStartTime.Value; ((WeekSchedule)schedule).Interval = Convert.ToInt32(this.updownWeekInterval.Value); ScheduleDay weekDays = ScheduleDay.None; if (checkWeekSunday.Checked) { weekDays |= ScheduleDay.Sunday; } if (checkWeekMonday.Checked) { weekDays |= ScheduleDay.Monday; } if (checkWeekTuesday.Checked) { weekDays |= ScheduleDay.Tuesday; } if (checkWeekWednesday.Checked) { weekDays |= ScheduleDay.Wednesday; } if (checkWeekThursday.Checked) { weekDays |= ScheduleDay.Thursday; } if (checkWeekFriday.Checked) { weekDays |= ScheduleDay.Friday; } if (checkWeekSaturday.Checked) { weekDays |= ScheduleDay.Saturday; } ((WeekSchedule)schedule).ScheduledDays = weekDays; break; case ScheduleType.Monthly: schedule = new MonthSchedule(); schedule.StartDate = this.dateStartDate.Value; schedule.StartTime = this.dateStartTime.Value; if (radioDayofMonth.Checked) { ((MonthSchedule)schedule).Day = Convert.ToInt32(this.updownDayofMonth.Value); } else { ((MonthSchedule)schedule).Ordinal = (ScheduleOrdinal)this.comboOrdinal.SelectedItem; ((MonthSchedule)schedule).WeekDay = (ScheduleDay)this.comboWeekday.SelectedItem; } ScheduleMonth months = ScheduleMonth.None; if (checkJanuary.Checked) { months |= ScheduleMonth.January; } if (checkFebruary.Checked) { months |= ScheduleMonth.February; } if (checkMarch.Checked) { months |= ScheduleMonth.March; } if (checkApril.Checked) { months |= ScheduleMonth.April; } if (checkMay.Checked) { months |= ScheduleMonth.May; } if (checkJune.Checked) { months |= ScheduleMonth.June; } if (checkJuly.Checked) { months |= ScheduleMonth.July; } if (checkAugust.Checked) { months |= ScheduleMonth.August; } if (checkSeptember.Checked) { months |= ScheduleMonth.September; } if (checkOctober.Checked) { months |= ScheduleMonth.October; } if (checkNovember.Checked) { months |= ScheduleMonth.November; } if (checkDecember.Checked) { months |= ScheduleMonth.December; } ((MonthSchedule)schedule).ScheduledMonths = months; break; default: break; } adapterConfiguration.Schedule = schedule; #endregion #region Task Task task = new Task(); task.TaskType = this.taskType; task.TaskParameters = propertyGridTask.SelectedObject; this.adapterConfiguration.Task = task; #endregion return(true); }
public void ScheduledPropertyPage_OnLoad(object sender, EventArgs e) { this.textScheduleName.Text = adapterConfiguration.Name; this.checkSuspendMessage.Checked = adapterConfiguration.SuspendMessage; if (adapterConfiguration.Schedule != null) { this.dateStartDate.Value = adapterConfiguration.Schedule.StartDate; this.dateStartTime.Value = adapterConfiguration.Schedule.StartTime; this.comboScheduleType.SelectedItem = adapterConfiguration.Schedule.Type; switch (adapterConfiguration.Schedule.Type) { case ScheduleType.Daily: //set Daily schedule properties DaySchedule daySchedule = adapterConfiguration.Schedule as DaySchedule; this.updownDayInterval.Value = Convert.ToDecimal(daySchedule.Interval); //if (this.updownDayInterval.Value == 0) --- to be removed if (daySchedule.ScheduledDays != ScheduleDay.None) { ScheduleDay days = daySchedule.ScheduledDays; if ((days & ScheduleDay.Sunday) > 0) { checkDaySunday.Checked = true; } if ((days & ScheduleDay.Monday) > 0) { checkDayMonday.Checked = true; } if ((days & ScheduleDay.Tuesday) > 0) { checkDayTuesday.Checked = true; } if ((days & ScheduleDay.Wednesday) > 0) { checkDayWednesday.Checked = true; } if ((days & ScheduleDay.Thursday) > 0) { checkDayThursday.Checked = true; } if ((days & ScheduleDay.Friday) > 0) { checkDayFriday.Checked = true; } if ((days & ScheduleDay.Saturday) > 0) { checkDaySaturday.Checked = true; } //radioDayInterval.Checked = false; --- to be removed radioSelectDays.Checked = true; } else { radioDayInterval.Checked = true; } break; case ScheduleType.Weekly: //set Weekly schedule properties WeekSchedule weekSchedule = adapterConfiguration.Schedule as WeekSchedule; this.updownWeekInterval.Value = weekSchedule.Interval; ScheduleDay weekDays = weekSchedule.ScheduledDays; if ((weekDays & ScheduleDay.Sunday) > 0) { checkWeekSunday.Checked = true; } if ((weekDays & ScheduleDay.Monday) > 0) { checkWeekMonday.Checked = true; } if ((weekDays & ScheduleDay.Tuesday) > 0) { checkWeekTuesday.Checked = true; } if ((weekDays & ScheduleDay.Wednesday) > 0) { checkWeekWednesday.Checked = true; } if ((weekDays & ScheduleDay.Thursday) > 0) { checkWeekThursday.Checked = true; } if ((weekDays & ScheduleDay.Friday) > 0) { checkWeekFriday.Checked = true; } if ((weekDays & ScheduleDay.Saturday) > 0) { checkWeekSaturday.Checked = true; } break; case ScheduleType.Monthly: //set Monthly schedule properties MonthSchedule monthSchedule = adapterConfiguration.Schedule as MonthSchedule; this.updownDayofMonth.Value = monthSchedule.Day; if (this.updownDayofMonth.Value == 0) { this.comboOrdinal.SelectedItem = monthSchedule.Ordinal; this.comboWeekday.SelectedItem = monthSchedule.WeekDay; radioDayofMonth.Checked = false; } else { radioDayofMonth.Checked = true; } ScheduleMonth months = monthSchedule.ScheduledMonths; if ((months & ScheduleMonth.January) > 0) { checkJanuary.Checked = true; } if ((months & ScheduleMonth.February) > 0) { checkFebruary.Checked = true; } if ((months & ScheduleMonth.March) > 0) { checkMarch.Checked = true; } if ((months & ScheduleMonth.April) > 0) { checkApril.Checked = true; } if ((months & ScheduleMonth.May) > 0) { checkMay.Checked = true; } if ((months & ScheduleMonth.June) > 0) { checkJune.Checked = true; } if ((months & ScheduleMonth.July) > 0) { checkJuly.Checked = true; } if ((months & ScheduleMonth.August) > 0) { checkAugust.Checked = true; } if ((months & ScheduleMonth.September) > 0) { checkSeptember.Checked = true; } if ((months & ScheduleMonth.October) > 0) { checkOctober.Checked = true; } if ((months & ScheduleMonth.November) > 0) { checkNovember.Checked = true; } if ((months & ScheduleMonth.December) > 0) { checkDecember.Checked = true; } break; case ScheduleType.TimeSpan: //set Timespan schedule properties TimeSpanSchedule timeSchedule = adapterConfiguration.Schedule as TimeSpanSchedule; int timeinseconds = timeSchedule.Interval; if (timeinseconds % 3600 == 0) { this.updownTimeInterval.Value = (timeinseconds / 3600); this.comboTimeUnits.SelectedItem = ScheduleTimeUnit.Hours; } else if (timeinseconds % 60 == 0) { this.updownTimeInterval.Value = (timeinseconds / 60); this.comboTimeUnits.SelectedItem = ScheduleTimeUnit.Minutes; } else { this.updownTimeInterval.Value = timeinseconds; this.comboTimeUnits.SelectedItem = ScheduleTimeUnit.Seconds; } break; default: break; } } if (adapterConfiguration.Task != null) { this.taskType = adapterConfiguration.Task.TaskType; this.textTaskClass.Text = adapterConfiguration.Task.TaskType.AssemblyQualifiedName; this.propertyGridTask.SelectedObject = adapterConfiguration.Task.TaskParameters; } }
private void UnloadMonthlySchedule() { ConfigXml.DocumentElement.SetAttribute("type", "", "Monthly"); if (radioDayofMonth.Checked) { if (_dayofmonth.Value == 0) { throw new ApplicationException("Must select a day of the month"); } XmlNode dayofmonth = ConfigXml.CreateNode("element", "dayofmonth", ""); dayofmonth.InnerText = _dayofmonth.Value.ToString(); ConfigXml.DocumentElement.AppendChild(dayofmonth); } else { if (ordinalDropDown.SelectedItem == null) { throw new ApplicationException("Must select an ordinal day"); } XmlNode ordinal = ConfigXml.CreateNode("element", "ordinal", ""); ordinal.InnerText = ordinalDropDown.SelectedItem.ToString(); ConfigXml.DocumentElement.AppendChild(ordinal); if (weekdayDropDown.SelectedItem == null) { throw new ApplicationException("Must select an ordinal week day"); } XmlNode weekday = ConfigXml.CreateNode("element", "weekday", ""); weekday.InnerText = weekdayDropDown.SelectedItem.ToString(); if (weekday.InnerText == "Day") { weekday.InnerText = "All"; } ConfigXml.DocumentElement.AppendChild(weekday); } ScheduleMonth result = ScheduleMonth.None; if (monthJanuary.Checked) { result = result | ScheduleMonth.January; } if (monthFebruary.Checked) { result = result | ScheduleMonth.February; } if (monthMarch.Checked) { result = result | ScheduleMonth.March; } if (monthApril.Checked) { result = result | ScheduleMonth.April; } if (monthMay.Checked) { result = result | ScheduleMonth.May; } if (monthJune.Checked) { result = result | ScheduleMonth.June; } if (monthJuly.Checked) { result = result | ScheduleMonth.July; } if (monthAugust.Checked) { result = result | ScheduleMonth.August; } if (monthSeptember.Checked) { result = result | ScheduleMonth.September; } if (monthOctober.Checked) { result = result | ScheduleMonth.October; } if (monthNovember.Checked) { result = result | ScheduleMonth.November; } if (monthDecember.Checked) { result = result | ScheduleMonth.December; } if (result == ScheduleMonth.None) { throw new ApplicationException("Must select one or more months"); } else { XmlNode months = ConfigXml.CreateNode("element", "months", ""); months.InnerText = result.ToString(); ConfigXml.DocumentElement.AppendChild(months); } }
private void LoadMonthlySchedule() { tabPages.SelectedTab = tabMonthly; _dayofmonth.Value = Convert.ToDecimal(Schedule.IfExistsExtractInt(ConfigXml, "/schedule/dayofmonth", 0)); if (_dayofmonth.Value == 0) { ScheduleOrdinal ordinal = Schedule.ExtractScheduleOrdinal(ConfigXml, "/schedule/ordinal", false); int index = ordinalDropDown.Items.IndexOf(ordinal.ToString()); ordinalDropDown.SelectedIndex = index; ScheduleDay weekDay = Schedule.ExtractScheduleDay(ConfigXml, "/schedule/weekday", false); string strWeekday = weekDay.ToString(); if (strWeekday == "All") { strWeekday = "Day"; } index = weekdayDropDown.Items.IndexOf(strWeekday); weekdayDropDown.SelectedIndex = index; radioDayofMonth.Checked = false; } else { radioDayofMonth.Checked = true; } ScheduleMonth months = Schedule.ExtractScheduleMonth(ConfigXml, "/schedule/months", false); if ((months & ScheduleMonth.February) > 0) { monthFebruary.Checked = true; } if ((months & ScheduleMonth.March) > 0) { monthMarch.Checked = true; } if ((months & ScheduleMonth.April) > 0) { monthApril.Checked = true; } if ((months & ScheduleMonth.May) > 0) { monthMay.Checked = true; } if ((months & ScheduleMonth.June) > 0) { monthJune.Checked = true; } if ((months & ScheduleMonth.July) > 0) { monthJuly.Checked = true; } if ((months & ScheduleMonth.August) > 0) { monthAugust.Checked = true; } if ((months & ScheduleMonth.September) > 0) { monthSeptember.Checked = true; } if ((months & ScheduleMonth.October) > 0) { monthOctober.Checked = true; } if ((months & ScheduleMonth.November) > 0) { monthNovember.Checked = true; } if ((months & ScheduleMonth.December) > 0) { monthDecember.Checked = true; } }