示例#1
0
        private void AddFilter_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                WorkBookManager           manager   = WorkBookManager.Manager();
                Models.WindowedSyncFilter newFilter = new Models.WindowedSyncFilter();
                newFilter.IsActive = true;
                newFilter.Name     = FilterName.Text;
                newFilter.CutoffFrequencySamplingFrequencyPercentage = double.Parse(CutoffFrequencyPercentage.Text);
                newFilter.FilterLength = int.Parse(FilterLength.Text);
                newFilter.FilterType   = (FILTERTYPE)Enum.Parse(typeof(FILTERTYPE), FilterType.SelectedItem.ToString());

                FilterViewModel model = DataContext as FilterViewModel;
                model?.AddFilter(newFilter);

                FilterName.Text = String.Empty;
                CutoffFrequencyPercentage.Text = String.Empty;
                FilterLength.Text        = String.Empty;
                FilterType.SelectedIndex = 0;
            }
            catch (Exception ex)
            {
                Log.Warning(ex, ex.Message);
                // TODO warn the user
            }
        }
示例#2
0
        public static bool Create(WorkBook workBook, Models.WindowedSyncFilter filter, SqliteConnection con)
        {
            // For now we just clear and re-create signal entries, we may update values in place later
            // keep it simple for now
            string        deleteSQL = $@"DELETE FROM Filters WHERE [Name]=@Name"; // This will cascade to the values table
            SqliteCommand cmd       = con.CreateCommand();

            cmd.CommandText = deleteSQL;
            cmd.Parameters.AddWithValue("@Name", filter.Name);
            cmd.ExecuteNonQuery();

            string sql = $@"INSERT INTO Filters ([Name], [IsActive], [WorkBookId], [FilterType]) 
                                VALUES (@Name, @IsActive, @WorkBookId, @FilterType)";



            cmd             = con.CreateCommand();
            cmd.CommandText = sql;
            cmd.Parameters.AddWithValue("@Name", filter.Name);
            cmd.Parameters.AddWithValue("@IsActive", filter.IsActive);
            cmd.Parameters.AddWithValue("@FilterType", filter.FilterType.ToString());
            cmd.Parameters.AddWithValue("@WorkBookId", workBook.Id);
            cmd.ExecuteNonQuery();

            sql = "SELECT last_insert_rowid();";
            using (SqliteCommand getId = con.CreateCommand())
            {
                getId.CommandText = sql;
                filter.Id         = (long)getId.ExecuteScalar();
            }

            sql = @"INSERT INTO WindowedSyncFilterParameters 
                    ([FilterId], [CutoffFrequencySamplingFrequencyPercentage], [FilterLength]) 
                    VALUES (@FilterId, @CutoffFrequencySamplingFrequencyPercentage, @FilterLength)";

            cmd             = con.CreateCommand();
            cmd.CommandText = sql;
            cmd.Parameters.AddWithValue("@FilterId", filter.Id);
            cmd.Parameters.AddWithValue("@FilterLength", filter.FilterLength);
            cmd.Parameters.AddWithValue("@CutoffFrequencySamplingFrequencyPercentage", filter.CutoffFrequencySamplingFrequencyPercentage);
            cmd.ExecuteNonQuery();

            return(true);
        }