/// <summary> /// Сохранение активного фильтра /// </summary> public void Save(object parameter = null) { FilterSaveFrm frm = new FilterSaveFrm(); frm.Text = "Фильтр"; if (frm.ShowDialog() == System.Windows.Forms.DialogResult.OK) { int idSource = 0; int idTable = 0; Npgsql.NpgsqlConnectionStringBuilder connect = (_source.Table.Source as PgDataRepositoryVM).Connect; String sourceName = String.Format("{0}@{1}", connect.Database, connect.Host); String sourceType = _source.Table.Source.Type.ToString(); Pg_M.PgTableBaseM pgTable = _source.Table as Pg_M.PgTableBaseM; String tableName = String.Format("\"{0}\".\"{1}\"", pgTable.SchemeName, pgTable.Name); bool sourceExists = (from Source src in Program.SettingsDB.Sources where src.SourceName == sourceName && src.SourceType == sourceType select src).Count() > 0; if (!sourceExists) { Program.SettingsDB.Sources.AddObject(new Source() { SourceName = sourceName, SourceType = sourceType }); } idSource = Convert.ToInt32((from Source src in Program.SettingsDB.Sources where src.SourceName == sourceName && src.SourceType == sourceType select src.Id).FirstOrDefault()); bool tableExists = (from Table tbl in Program.SettingsDB.Tables where tbl.SourceId == idSource && tbl.TableName == tableName select tbl).Count() > 0; if (!tableExists) { Program.SettingsDB.Tables.AddObject(new Table() { TableName = tableName, SourceId = idSource }); } idTable = Convert.ToInt32((from Table tbl in Program.SettingsDB.Tables where tbl.TableName == tableName && tbl.SourceId == idSource select tbl.Id).FirstOrDefault()); FilterRelationModel filterRM = GetFilterModel(_dynamicFilter); Program.SettingsDB.Filters.AddObject(new Filter() { FilterName = frm.textBox1.Text, WhereText = SqlJsonParser.ToJson(filterRM), IdTable = idTable }); Program.SettingsDB.SaveChanges(); ReloadFiltersFromSqLite(); } }
/// <summary> /// Загрузка активного фильтра из SQLite /// </summary> public void LoadFilter(object parameter = null) { long filterId = Convert.ToInt64(parameter); foreach (var filter in (from Filter f in Program.SettingsDB.Filters where f.Id == filterId select f)) { FilterRelationModel pattern = SqlJsonParser.FromJson <FilterRelationModel>(filter.WhereText); SetFilterFromPattern(_dynamicFilter, pattern); _dynamicFilter.OnPropertyChanged("QueryString"); } }