Beispiel #1
0
        /// <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;
        }
Beispiel #2
0
        /// <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;
        }
Beispiel #3
0
        /// <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);
        }
Beispiel #4
0
        /// <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);
        }
Beispiel #5
0
        /// <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;
        }