예제 #1
0
        /// <summary>
        /// Resets the dialog form to its initial state.
        /// </summary>
        public void ResetBackFillForm()
        {
            // Reset form values
            databaseValue.Text = null;
            destinationComboBox.SelectedItem = null;
            destinationComboBox.Text         = null;
            destinationComboBox.Items.Clear();
            sourceComboBox.SelectedItem = null;
            sourceComboBox.Text         = null;
            sourceComboBox.Items.Clear();
            intervalTextBox.Text           = null;
            fillTypeComboBox.SelectedIndex = 0;
            tagsTextBox.Text = null;

            // Reset time/date format
            var dateTimeFormat = string.Format("{0} @ {1}", AppForm.Settings.DateFormat, AppForm.Settings.TimeFormat);

            fromDateTimePicker.CustomFormat = dateTimeFormat;
            toDateTimePicker.CustomFormat   = dateTimeFormat;

            // Reset result
            BackfillResult = null;

            // Clear query
            NewQuery();
        }
예제 #2
0
        // Form Closing
        private void BackfillDialog_FormClosing(object sender, FormClosingEventArgs e)
        {
            try
            {
                // If the user is closing/canceling the form, nothing to do
                if (DialogResult != DialogResult.OK)
                {
                    return;
                }

                // Create the Backfill result from form values
                BackfillResult = CreateBackfillParamsFromValues();

                // If a valid result wasn't returned, cancel
                if (BackfillResult == null)
                {
                    e.Cancel = true;
                }
            }
            catch (Exception ex)
            {
                AppForm.DisplayException(ex);
            }
        }
예제 #3
0
        /// <summary>
        /// Creates a new <see cref="InfluxDbBackfillParams">Backfill Query</see> parameters object
        /// from the current dialog values.
        /// </summary>
        /// <returns>A Backfill params object if current values are valid, otherwise NULL.</returns>
        public InfluxDbBackfillParams CreateBackfillParamsFromValues()
        {
            if (!ValidateBackfillValues())
            {
                return(null);
            }

            try
            {
                // Collect form values
                var destination = destinationComboBox.SelectedItem != null ? destinationComboBox.SelectedItem as string : destinationComboBox.Text;
                var source      = sourceComboBox.SelectedItem != null ? sourceComboBox.SelectedItem as string : sourceComboBox.Text;

                // Subqueries
                var subQueries = new List <string>();
                subQueries.Add(queryEditor.Text.Trim());

                // Filters
                List <string> filters = new List <string>();

                if (!string.IsNullOrWhiteSpace(filtersTextBox.Text))
                {
                    var parsedFilters = filtersTextBox.Text.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                    foreach (var filter in parsedFilters)
                    {
                        filters.Add(filter.Trim());
                    }
                }

                // Tags
                List <string> tags = new List <string>();

                if (!string.IsNullOrWhiteSpace(tagsTextBox.Text))
                {
                    var parsedTags = tagsTextBox.Text.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                    foreach (var tag in parsedTags)
                    {
                        tags.Add(tag.Trim());
                    }
                }

                // Create the Backfill parameters
                var backfillParams = new InfluxDbBackfillParams()
                {
                    Destination = destination,
                    Source      = source,
                    SubQueries  = subQueries,
                    Interval    = intervalTextBox.Text,
                    FillType    = (InfluxDbFillTypes)fillTypeComboBox.SelectedItem,
                    FromTime    = fromDateTimePicker.Value,
                    ToTime      = toDateTimePicker.Value,
                    Filters     = filters.Count > 0 ? filters : null,
                    Tags        = tags.Count > 0 ? tags : null,
                };

                return(backfillParams);
            }
            catch (Exception ex)
            {
                AppForm.DisplayException(ex);
                return(null);
            }
        }