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 } }
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); }