private void UpdateSchema() { try { Task tsk = new Task(() => { IsLoadingSchema = true; IsSchemaLoaded = false; IsCommandEnabled = false; List <NodeItem> columns = Schemas.Flatten(a => a.Items).Where(a => a.Type == NodeType.Column).ToList(); _dataService.SetColumnsDescriptionProperties(ConnectionString, columns, SelectedDbProvider.Type); IsLoadingSchema = false; IsSchemaLoaded = true; IsCommandEnabled = true; }); tsk.Start(); } catch (Exception ex) { IsLoadingSchema = false; IsSchemaLoaded = true; IsCommandEnabled = true; MessageBox.Show(ex.Message); } }
private void ImportFromCsv() { try { if (_databaseSchema != null) { OpenFileDialog dialog = new OpenFileDialog(); dialog.Filter = "CSV file|*.csv"; if (dialog.ShowDialog().Value) { Task tsk = new Task(() => { IsLoadingSchema = true; IsSchemaLoaded = false; IsCommandEnabled = false; List <NodeItem> columns = _dataService.ImportSchemaFromCsv(dialog.FileName); var tables = columns.GroupBy(a => a.Table); foreach (var table in tables) { foreach (var column in table) { if (String.IsNullOrEmpty(column.Name)) { continue; } string columnName = column.Name.ToUpper(); var node = Schemas.Flatten(a => a.Items).Where(a => a.Type == NodeType.Column && a.Table == column.Table).FirstOrDefault(a => a.Name.ToUpper() == columnName); if (node == null) { continue; } node.Description = column.Description; } } RaisePropertyChanged(() => Schemas); IsLoadingSchema = false; IsSchemaLoaded = true; IsCommandEnabled = true; }); tsk.Start(); } } } catch (Exception ex) { IsLoadingSchema = false; IsSchemaLoaded = true; MessageBox.Show(ex.Message); } }
private void ExportToCsv() { try { Task tsk = new Task(() => { IsLoadingSchema = true; IsSchemaLoaded = false; IsCommandEnabled = false; List <NodeItem> tables = Schemas.Flatten(a => a.Items).Where(a => a.Type == NodeType.Table).ToList(); List <NodeItem> columns = new List <NodeItem>(); foreach (var item in tables) { NodeItem table = new NodeItem(NodeType.Table); table.Table = item.Name; columns.Add(table); //var tableColumns = Schemas.Flatten(a => a.Items).Where(a => a.Type == NodeType.Column && a.Table == item.Table); columns.AddRange(item.Items); } SaveFileDialog dialog = new SaveFileDialog(); dialog.Filter = "CSV file|*.csv"; if (dialog.ShowDialog().Value) { _dataService.ExportSchemaToCsv(columns, dialog.FileName); } IsLoadingSchema = false; IsSchemaLoaded = true; IsCommandEnabled = true; }); tsk.Start(); } catch (Exception ex) { IsLoadingSchema = false; IsSchemaLoaded = true; IsCommandEnabled = true; MessageBox.Show(ex.Message); } }
private void SearchTable() { SelectedNodeItem = Schemas.Flatten(a => a.Items).Where(a => a.Type == NodeType.Table).ToList().FirstOrDefault(a => a.Name.Contains(Filter)); }