public InlineInsertGenerator(string tableName, ITableDataSource tableDataSource, List <ColumnDefinition> columnDefinitions, List <ColumnDefinition> sourceOrderedColumnDefinitions) { this.tableName = tableName; this.tableDataSource = tableDataSource; this.columnDefinitions = columnDefinitions; insertColumnNames = string.Join(",", sourceOrderedColumnDefinitions.Select(col => col.Field.Replace("/", "_"))); }
public void AddTable(ITableDataSource dataSourceDescriptor, string tableName) { Check.DoRequireArgumentNotNull(dataSourceDescriptor, nameof(dataSourceDescriptor)); Check.DoRequireArgumentNotBlank(tableName, nameof(tableName)); TableDataSourceDescriptors.Add(tableName, dataSourceDescriptor); }
private void RemoveTableSourceIfNecessary(ITableDataSource source) { if (!this.TableManager.Sources.Any(s => s == source)) { return; } this.TableManager.RemoveSource(source); }
protected void AddInitialTableSource(Solution solution, ITableDataSource source) { if (solution.ProjectIds.Count == 0) { return; } AddTableSource(source); }
protected void AddInitialTableSource(Solution solution, ITableDataSource source) { if (solution.ProjectIds.Count == 0) { return; } AddTableSource(source); }
public static void Main(string[] args) { try { if (!ReadSettings(args)) { Console.ReadKey(); return; } string[] tableNames = Parameters.Singleton.Tables; /*new[] { * "ce1bp01.2016", "ce1bp01.2017", "ce2bp01.2016", "ce2bp01.2017", "cobk.2016_001", "cobk.2017_001", "coep.2016_001", "coep.2017_001", * "faglflexa.2016_001", "faglflexa.2017_001", "faglflext.2016", "faglflext.2017", * "tvkot", "tvtwt", "tvkbt", "tvgrt", "t171t", "tbrct", "t179t", "t001w", "csks", "cskst", "t001", "t001b", "cska", "csku", "skat", * "cepct", "setheader", "setheadert", "setnode", "setleaf", "fagl_011pc", "fagl_011zc", "fagl_011sc", "fagl_011qt", "aufk", "mara" * };*/ IOutputWriter writer = new SingleFileWriter(Parameters.Singleton.CreateFileName, Parameters.Singleton.InsertFileName); foreach (string tableName in tableNames) { Console.WriteLine($"Processing file {tableName}"); string tableDefinition = CreateTableDefinition(tableName); string formatFile; string bulkInsert; string create; using (DataSourceFactory factory = new DataSourceFactory()) { ITableDataSource source = factory.GetDataSourceForTable(tableName); List <ColumnDefinition> colDefinition = ColumnDefinitionFactory.GetColumnDefinitionsForTable(tableDefinition) .Where(col => source.UsesColumn(col)).ToList(); List <ColumnDefinition> sourceOrderedColumnDefinitions = source.Reorder(colDefinition); CreateGenerator createGenerator = new CreateGenerator(tableDefinition, colDefinition); create = createGenerator.BuildCreate(out formatFile, source.IsQuoteEnclosed); IInsertGenerator insertGenerator = new BulkInsertGenerator(tableDefinition, source, tableName); if (source is ExcelTableDataSource) { insertGenerator = new InlineInsertGenerator(tableDefinition, source, colDefinition, sourceOrderedColumnDefinitions); } bulkInsert = insertGenerator.BuildInsert(); } writer.TableName = tableName; writer.TableDefinition = tableDefinition; writer.CreateScript = create; writer.Format = formatFile; writer.BulkInsertScript = bulkInsert; writer.Write(); } Console.WriteLine("Completed all tables successfully"); } catch (Exception e) { Console.WriteLine(e); Console.ReadKey(); } }
public ITableDataSource GetDataSourceForTable(string tableName) { ITableDataSource result = null; result = TryLoadTextFile(tableName); if (result == null) { result = TryLoadExcelFile(tableName); } if (result == null) { throw new ArgumentException($"Cannot find any file for table {tableName}"); } return(result); }
public static DataTable ExtractTable(ITableDataSource dataSource, IEnumerable data) { var result = new DataTable(); var columnDescriptors = dataSource.AllColumns.ToArray(); foreach (var sourceColumn in columnDescriptors) { result.Columns.Add(sourceColumn.Name, sourceColumn.DataType); } foreach (var dataItem in data) { var row = result.NewRow(); for (var columnIndex = 0; columnIndex < columnDescriptors.Length; ++columnIndex) { row[columnIndex] = columnDescriptors[columnIndex].GetValue(dataItem) ?? DBNull.Value; } } return(result); }
protected void AddTableSource(ITableDataSource source) { this.TableManager.AddSource(source, Columns); }
protected void AddTableSource(ITableDataSource source) { this.TableManager.AddSource(source, Columns); }
public BulkInsertGenerator(string tableName, ITableDataSource tableDataSource, string importName) { this.tableName = tableName; this.tableDataSource = tableDataSource; this.importName = importName; }
private void RemoveTableSourceIfNecessary(ITableDataSource source) { if (!this.TableManager.Sources.Any(s => s == source)) { return; } this.TableManager.RemoveSource(source); }
public TableAdapter(ITableDataSource dataSource, EditorWindow window, int verticalDividerPos = 0) { mDataSource = dataSource; mWindow = window; VerticalDividerPosition = verticalDividerPos; RectOffset margin = new RectOffset(4, 4, 4, 4); RectOffset padding = new RectOffset(3, 3, 3, 3); GUIStyle gs = null; LockedHeaderStyle = new GUIStyle(EditorStyles.label); LockedCellStyle = new GUIStyle(EditorStyles.textField); ScrollableHeaderStyle = new GUIStyle(EditorStyles.label); ScrollableCellStyle = new GUIStyle(EditorStyles.textField); NewDataCellStyle = new GUIStyle(EditorStyles.textField); PlaceHolderTextStyle = new GUIStyle(EditorStyles.textField); ButtonStyle = new GUIStyle("button"); // NAME, DESCRIPTION, etc. gs = LockedHeaderStyle; gs.fontStyle = FontStyle.Bold; gs.alignment = TextAnchor.MiddleCenter; gs.margin = margin; gs.padding = padding; gs = LockedCellStyle; gs.margin = margin; gs.padding = padding; gs.alignment = TextAnchor.MiddleLeft; // All custom fields gs = ScrollableHeaderStyle; gs.fontStyle = FontStyle.Bold; gs.alignment = TextAnchor.MiddleCenter; gs.margin = margin; gs.padding = padding; gs = ScrollableCellStyle; gs.margin = margin; gs.padding = padding; gs.alignment = TextAnchor.MiddleRight; // New entry fields gs = NewDataCellStyle; gs.margin = margin; gs.padding = padding; gs.alignment = TextAnchor.MiddleRight; gs = PlaceHolderTextStyle; gs.margin = margin; gs.padding = padding; gs.alignment = TextAnchor.MiddleRight; gs.fontStyle = FontStyle.Italic; gs = ButtonStyle; gs.padding = padding; gs.margin = margin; // Init context menu contextMenu = new GenericMenu(); contextMenu.AddItem(new GUIContent("Remove Field"), false, ContextMenuRemoveField); }