/// <summary> /// The AddRecurrenceDetails method. /// </summary> /// <param name="scheduleTrigger">The new schedule trigger to add info to.</param> private void AddRecurrenceDetails(NewScheduleTrigger scheduleTrigger) { // If the weekly type is selected, add the selected days of the week to the schedule trigger. if (scheduleTrigger.RecurrenceType == ScheduleTrigger.RecurrenceTypes.Weekly) { var weeklyValues = (from ListViewItem item in lvWeekly.CheckedItems select item.Index + 1).ToList(); scheduleTrigger.RecurWeekly = weeklyValues; } // If the monthly type is selected, add the selected days of the month to the schedule trigger. if (scheduleTrigger.RecurrenceType == ScheduleTrigger.RecurrenceTypes.Monthly) { var monthlyValues = (from ListViewItem item in lvMonthly.CheckedItems select item.Index + 1).ToList(); scheduleTrigger.RecurMonthly = monthlyValues; } // If the yearly or monthly type is selected, add the selected months to the schedule trigger. if (scheduleTrigger.RecurrenceType != ScheduleTrigger.RecurrenceTypes.Monthly && scheduleTrigger.RecurrenceType != ScheduleTrigger.RecurrenceTypes.Yearly) { return; } var yearlyValues = (from ListViewItem item in lvYearly.CheckedItems select item.Index + 1).ToList(); scheduleTrigger.RecurYearly = yearlyValues; }
/// <summary> /// The AddEventDetails method. /// </summary> /// <param name="scheduleTrigger">The new schedule trigger to add info to.</param> private void AddEventDetails(NewScheduleTrigger scheduleTrigger) { // Set the situation type based on the selection. scheduleTrigger.EventSituationType = cbxEvent.SelectedItem.ToString(); scheduleTrigger.InactiveEventSituationType = cbxEventInactive.SelectedItem.ToString(); // Set the event properties if they have been added. var eventProperties = new List <KeyValuePair <string, string> >(); foreach (ListViewItem item in lvEventProperties.Items) { eventProperties.Add(new KeyValuePair <string, string>(item.SubItems[0].Text, item.SubItems[1].Text)); } scheduleTrigger.EventProperties = eventProperties; }
/// <summary> /// The ButtonAdd_Click method. /// </summary> /// <param name="sender">The <paramref name="sender"/> parameter.</param> /// <param name="args">The <paramref name="args"/> parameter.</param> private void ButtonAdd_Click(object sender, EventArgs args) { // Create a new schedule trigger using the form info. var scheduleTrigger = new NewScheduleTrigger { Id = tbxId.Text, Framerate = (Clip.RecordingFramerates)cbxFramerate.SelectedIndex + 1, PreTrigger = (int)nudPreRecord.Value, PostTrigger = (int)nudPostRecord.Value, Timeout = (int)nudDuration.Value, Action = (ScheduleTrigger.Actions)cbxAction.SelectedIndex + 1 }; var timeTableName = string.Empty; if (cbxTimeTables.SelectedIndex != 0) { var timeTable = ((ComboboxItem)cbxTimeTables.SelectedItem).Value as TimeTable; if (timeTable != null) { timeTableName = cbxTimeTables.SelectedItem.ToString(); scheduleTrigger.TimeTableId = timeTable.Id; } } // If an event is selected add the event settings to the schedule trigger. if (cbxEvent.SelectedIndex != 0) { AddEventDetails(scheduleTrigger); } // Add the schedule trigger to the list view. var lvItem = new ListViewItem(string.Empty); lvItem.SubItems.Add(scheduleTrigger.Id); lvItem.SubItems.Add(scheduleTrigger.EventSituationType); lvItem.SubItems.Add(scheduleTrigger.InactiveEventSituationType); lvItem.SubItems.Add(scheduleTrigger.EventProperties.Count.ToString()); lvItem.SubItems.Add(scheduleTrigger.Framerate.ToString()); lvItem.SubItems.Add(scheduleTrigger.PreTrigger.ToString()); lvItem.SubItems.Add(scheduleTrigger.PostTrigger.ToString()); lvItem.SubItems.Add(scheduleTrigger.Timeout.ToString()); lvItem.SubItems.Add(timeTableName); lvItem.SubItems.Add(scheduleTrigger.Action.ToString()); lvItem.Tag = scheduleTrigger; ScheduleTriggerListView.Items.Add(lvItem); }
/// <summary> /// The ButtonAdd_Click method. /// </summary> /// <param name="sender">The <paramref name="sender"/> parameter.</param> /// <param name="args">The <paramref name="args"/> parameter.</param> private void ButtonAdd_Click(object sender, EventArgs args) { // Create a new schedule trigger using the form info. var scheduleTrigger = new NewScheduleTrigger { DailyEndTime = dtpDailyEndTime.Value, DailyStartTime = dtpDailyStartTime.Value, EndDate = dtpEndDate.Value, StartDate = dtpStartDate.Value, Id = tbxId.Text, Framerate = (Clip.RecordingFramerates)cbxFramerate.SelectedIndex + 1, PreTrigger = (int)nudPreRecord.Value, PostTrigger = (int)nudPostRecord.Value, Timeout = (int)nudDuration.Value, RecurrenceType = (ScheduleTrigger.RecurrenceTypes)cbxRecurrenceType.SelectedIndex + 1 }; // Add the recurrence settings to the schedule trigger. AddRecurrenceDetails(scheduleTrigger); // If an event is selected add the event settings to the schedule trigger. if (cbxEvent.SelectedIndex != 0) { AddEventDetails(scheduleTrigger); } // Add the schedule trigger to the list view. var lvItem = new ListViewItem(string.Empty); lvItem.SubItems.Add(scheduleTrigger.Id); lvItem.SubItems.Add(scheduleTrigger.DailyStartTime.ToString("HH:mm:ss")); lvItem.SubItems.Add(scheduleTrigger.DailyEndTime.ToString("HH:mm:ss")); lvItem.SubItems.Add(scheduleTrigger.StartDate.ToString("d")); lvItem.SubItems.Add(scheduleTrigger.EndDate.ToString("d")); lvItem.SubItems.Add(scheduleTrigger.RecurrenceType.ToString()); lvItem.SubItems.Add(scheduleTrigger.Event == 0 ? "None" : scheduleTrigger.Event.ToString()); lvItem.SubItems.Add(scheduleTrigger.PreTrigger.ToString()); lvItem.SubItems.Add(scheduleTrigger.PostTrigger.ToString()); lvItem.SubItems.Add(scheduleTrigger.Timeout.ToString()); lvItem.Tag = scheduleTrigger; ScheduleTriggerListView.Items.Add(lvItem); }
/// <summary> /// The AddEventDetails method. /// </summary> /// <param name="scheduleTrigger">The new schedule trigger to add info to.</param> private void AddEventDetails(NewScheduleTrigger scheduleTrigger) { // Set the situation type based on the selection. scheduleTrigger.Event = cbxEvent.SelectedIndex == 1 ? ScheduleTrigger.SituationTypes.AlarmActive : ScheduleTrigger.SituationTypes.Motion; // Set the event sources if they have been added. if (lvEventSources.CheckedItems.Count > 0) { var selectedDevice = (Device)lvEventSources.CheckedItems[0].Tag; scheduleTrigger.EventSource = selectedDevice.Id; } // Set the event properties if they have been added. var eventProperties = new List <KeyValuePair <string, string> >(); foreach (ListViewItem item in lvEventProperties.Items) { eventProperties.Add(new KeyValuePair <string, string>(item.SubItems[0].Text, item.SubItems[1].Text)); } scheduleTrigger.EventProperties = eventProperties; }