public questStatus ReadTablesetConfiguration(TablesetId tablesetId, out TablesetConfiguration tablesetConfiguration) { // Initialize questStatus status = null; tablesetConfiguration = null; // Read tableset configuration status = _dbTablesetMgr.ReadTablesetConfiguration(tablesetId, out tablesetConfiguration); if (!questStatusDef.IsSuccess(status)) { return(status); } // Read database entities DatabaseId databaseId = new DatabaseId(tablesetConfiguration.Database.Id); DatabaseEntities databaseEntities = null; DatabaseMgr databaseMgr = new DatabaseMgr(this.UserSession); status = databaseMgr.ReadDatabaseEntities(databaseId, out databaseEntities); if (!questStatusDef.IsSuccess(status)) { return(status); } // Sort out what's assigned and not assigned to the tableset. List <Table> nonAssignedTableList = new List <Table>(); List <View> nonAssignedViewList = new List <View>(); foreach (Table table in databaseEntities.TableList) { TablesetTable tablesetTable = tablesetConfiguration.TablesetTables.Find(delegate(TablesetTable ts) { return(ts.Schema == table.Schema && ts.Name == table.Name); }); if (tablesetTable == null) { nonAssignedTableList.Add(table); } } tablesetConfiguration.DBTableList = nonAssignedTableList; // Load database views and columns into configuration NOT assigned to tableset. foreach (View view in databaseEntities.ViewList) { TablesetView tablesetView = tablesetConfiguration.TablesetViews.Find(delegate(TablesetView tv) { return(tv.Schema == view.Schema && tv.Name == view.Name); }); if (tablesetView == null) { nonAssignedViewList.Add(view); } } tablesetConfiguration.DBViewList = nonAssignedViewList; return(new questStatus(Severity.Success)); }
public questStatus ReadTablesetDataManagement(TablesetId tablesetId, out TablesetDataManagement tablesetDataManagement) { // Initialize questStatus status = null; tablesetDataManagement = null; // Read tableset configuration TablesetConfiguration tablesetConfiguration = null; status = ReadTablesetConfiguration(tablesetId, out tablesetConfiguration); if (!questStatusDef.IsSuccess(status)) { return(status); } // Build tableset data management. tablesetDataManagement = new TablesetDataManagement(); tablesetDataManagement.TablesetConfiguration = tablesetConfiguration; // TODO: REFACTOR SOME STUFF. FOCUSING ON UI RIGHT NOW, NO TIME FOR IT HERE. // Read tableset filters List <Filter> filterList = null; DbFiltersMgr dbFiltersMgr = new DbFiltersMgr(this._userSession); status = dbFiltersMgr.Read(tablesetId, out filterList); if (!questStatusDef.IsSuccess(status)) { return(status); } tablesetDataManagement.FilterList = filterList; return(new questStatus(Severity.Success)); }
public questStatus Read(TablesetId tablesetId, out TablesetConfigurationViewModel tablesetConfigurationViewModel) { // Initialize questStatus status = null; tablesetConfigurationViewModel = null; // If no tablesetId, return empty view model if (tablesetId.Id < BaseId.VALID_ID) { tablesetConfigurationViewModel = new TablesetConfigurationViewModel(this.UserSession, this._setupBaseViewModel); return(new questStatus(Severity.Success)); } // Read TablesetConfiguration tablesetConfiguration = null; TablesetMgr tablesetMgr = new TablesetMgr(this.UserSession); status = tablesetMgr.ReadTablesetConfiguration(tablesetId, out tablesetConfiguration); if (!questStatusDef.IsSuccess(status)) { // Return what we can of the configuration, but with the error status. if (tablesetConfiguration != null) { tablesetConfigurationViewModel = new TablesetConfigurationViewModel(this.UserSession, this._setupBaseViewModel); BufferMgr.TransferBuffer(tablesetConfiguration, tablesetConfigurationViewModel, true); if (this._tablesetEditorViewModel != null) { tablesetConfigurationViewModel.Id = this._tablesetEditorViewModel.Id; tablesetConfigurationViewModel.TablesetId = this._tablesetEditorViewModel.Id; } else if (this._tablesetConfigurationViewModel != null) { tablesetConfigurationViewModel.Id = this._tablesetConfigurationViewModel.Id; tablesetConfigurationViewModel.TablesetId = this._tablesetConfigurationViewModel.Id; } } if (status.Message.Contains("DbDatabasesMgr") && (status.Message.Contains("not found"))) { status = new questStatus(Severity.Error, "Database not found for this table set."); } return(status); } // Transfer model. tablesetConfigurationViewModel = new TablesetConfigurationViewModel(this.UserSession, this._setupBaseViewModel); BufferMgr.TransferBuffer(tablesetConfiguration, tablesetConfigurationViewModel, true); tablesetConfigurationViewModel.Id = tablesetConfiguration.Tableset.Id; tablesetConfigurationViewModel.TablesetId = tablesetConfiguration.Tableset.Id; // Tables foreach (TablesetTable tablesetTable in tablesetConfiguration.TablesetTables) { BootstrapTreenodeViewModel bootstrapTreenodeViewModel = null; status = FormatBootstrapTreeviewNode(tablesetTable.Table, out bootstrapTreenodeViewModel); if (!questStatusDef.IsSuccess(status)) { return(status); } tablesetConfigurationViewModel.TableList.Add(bootstrapTreenodeViewModel); } foreach (Table dbTable in tablesetConfiguration.DBTableList) { BootstrapTreenodeViewModel bootstrapTreenodeViewModel = null; status = FormatBootstrapTreeviewNode(dbTable, out bootstrapTreenodeViewModel); if (!questStatusDef.IsSuccess(status)) { return(status); } tablesetConfigurationViewModel.DBTableList.Add(bootstrapTreenodeViewModel); } // Views foreach (TablesetView tablesetView in tablesetConfiguration.TablesetViews) { BootstrapTreenodeViewModel bootstrapTreenodeViewModel = null; status = FormatBootstrapTreeviewNode(tablesetView.View, out bootstrapTreenodeViewModel); if (!questStatusDef.IsSuccess(status)) { return(status); } tablesetConfigurationViewModel.ViewList.Add(bootstrapTreenodeViewModel); } foreach (View dbView in tablesetConfiguration.DBViewList) { BootstrapTreenodeViewModel bootstrapTreenodeViewModel = null; status = FormatBootstrapTreeviewNode(dbView, out bootstrapTreenodeViewModel); if (!questStatusDef.IsSuccess(status)) { return(status); } tablesetConfigurationViewModel.DBViewList.Add(bootstrapTreenodeViewModel); } return(new questStatus(Severity.Success)); }
public questStatus Save(TablesetConfigurationViewModel tablesetConfigurationViewModel) { // Initialize questStatus status = null; TablesetId tablesetId = null; // Validate: must have a valid TablesetId if (tablesetConfigurationViewModel.Tableset.Id < BaseId.VALID_ID) { return(new questStatus(Severity.Error, "Invalid Tableset identity")); } tablesetId = new TablesetId(tablesetConfigurationViewModel.Tableset.Id); Tableset tableset = null; TablesetsMgr tablesetsMgr = new TablesetsMgr(this.UserSession); status = tablesetsMgr.Read(tablesetId, out tableset); if (!questStatusDef.IsSuccess(status)) { return(new questStatus(Severity.Error, String.Format("Tableset identity not found: {0}", tablesetId.Id))); } // Transfer model if (tablesetConfigurationViewModel.TableList == null) { tablesetConfigurationViewModel.TableList = new List <BootstrapTreenodeViewModel>(); } TablesetConfiguration tablesetConfiguration = new TablesetConfiguration(); BufferMgr.TransferBuffer(tablesetConfigurationViewModel, tablesetConfiguration, true); foreach (BootstrapTreenodeViewModel _table in tablesetConfigurationViewModel.TableList) { TablesetTable tablesetTable = new TablesetTable(); string[] parts = _table.text.Split(new[] { '[', '.', ']' }, StringSplitOptions.RemoveEmptyEntries); tablesetTable.Schema = parts[0]; tablesetTable.Name = parts[1]; tablesetConfiguration.TablesetTables.Add(tablesetTable); } foreach (BootstrapTreenodeViewModel _view in tablesetConfigurationViewModel.ViewList) { TablesetView tablesetView = new TablesetView(); string[] parts = _view.text.Split(new[] { '[', '.', ']' }, StringSplitOptions.RemoveEmptyEntries); tablesetView.Schema = parts[0]; tablesetView.Name = parts[1]; tablesetConfiguration.TablesetViews.Add(tablesetView); } // Save tablesetId = null; TablesetMgr tablesetMgr = new TablesetMgr(this.UserSession); status = tablesetMgr.SaveTablesetConfiguration(tablesetConfiguration, out tablesetId); if (!questStatusDef.IsSuccess(status)) { FormatErrorMessage(status, tablesetConfigurationViewModel); return(status); } tablesetConfigurationViewModel.Tableset.Id = tablesetId.Id; return(new questStatus(Severity.Success)); }
public questStatus ReadTablesetConfiguration(TablesetId tablesetId, out TablesetConfiguration tablesetConfiguration) { // Initialize questStatus status = null; tablesetConfiguration = null; // Read tableset Tableset tableset = null; DbTablesetsMgr dbTablesetsMgr = new DbTablesetsMgr(this._userSession); status = dbTablesetsMgr.Read(tablesetId, out tableset); if (!questStatusDef.IsSuccess(status)) { return(status); } // Read database DatabaseId databaseId = new DatabaseId(tableset.DatabaseId); Quest.Functional.MasterPricing.Database database = null; DbDatabasesMgr dbDatabasesMgr = new DbDatabasesMgr(this._userSession); status = dbDatabasesMgr.Read(databaseId, out database); if (!questStatusDef.IsSuccess(status)) { return(status); } /* * Load tableset entities. */ DbTablesetColumnsMgr dbTablesetColumnsMgr = new DbTablesetColumnsMgr(this._userSession); // Read tables in tableset List <Quest.Functional.MasterPricing.TablesetTable> tablesetTableList = null; DbTablesetTablesMgr dbTablesetTablesMgr = new DbTablesetTablesMgr(this._userSession); status = dbTablesetTablesMgr.Read(tablesetId, out tablesetTableList); if (!questStatusDef.IsSuccess(status)) { return(status); } // Read table info. EntityType entityType = new EntityType(); entityType.Id = EntityType.Table; DbTablesMgr dbTablesMgr = new DbTablesMgr(this._userSession); DbColumnsMgr dbColumnsMgr = new DbColumnsMgr(this._userSession); foreach (TablesetTable tablesetTable in tablesetTableList) { TablesetId tableSetId = new TablesetId(tablesetTable.Id); List <Quest.Functional.MasterPricing.TablesetColumn> tablesetColumnList = null; TableSetEntityId tableSetEntityId = new TableSetEntityId(tablesetTable.Id); status = dbTablesetColumnsMgr.Read(entityType, tableSetEntityId, out tablesetColumnList); if (!questStatusDef.IsSuccess(status)) { return(status); } tablesetTable.TablesetColumnList = tablesetColumnList; Table table = null; status = dbTablesMgr.Read(databaseId, tablesetTable.Schema, tablesetTable.Name, out table); if (!questStatusDef.IsSuccess(status)) { return(status); } tablesetTable.Table = table; // Get column metadata EntityTypeId entityTypeId = new EntityTypeId(EntityType.Table); EntityId entityId = new EntityId(table.Id); foreach (TablesetColumn tablesetColumn in tablesetColumnList) { Column column = null; status = dbColumnsMgr.Read(entityTypeId, entityId, tablesetColumn.Name, out column); if (!questStatusDef.IsSuccess(status)) { return(status); } tablesetColumn.Column = column; } } // Read views in tableset List <Quest.Functional.MasterPricing.TablesetView> tablesetViewList = null; DbTablesetViewsMgr dbTablesetViewsMgr = new DbTablesetViewsMgr(this._userSession); status = dbTablesetViewsMgr.Read(tablesetId, out tablesetViewList); if (!questStatusDef.IsSuccess(status)) { return(status); } // Read views columns in tableset entityType.Id = EntityType.View; DbViewsMgr dbViewsMgr = new DbViewsMgr(this._userSession); foreach (TablesetView tablesetView in tablesetViewList) { TablesetViewId tablesetViewId = new TablesetViewId(tablesetView.Id); List <Quest.Functional.MasterPricing.TablesetColumn> tablesetColumnList = null; TableSetEntityId tableSetEntityId = new TableSetEntityId(tablesetView.Id); status = dbTablesetColumnsMgr.Read(entityType, tableSetEntityId, out tablesetColumnList); if (!questStatusDef.IsSuccess(status)) { return(status); } tablesetView.TablesetColumnList = tablesetColumnList; View view = null; status = dbViewsMgr.Read(databaseId, tablesetView.Schema, tablesetView.Name, out view); if (!questStatusDef.IsSuccess(status)) { return(status); } tablesetView.View = view; // Get column metadata EntityTypeId entityTypeId = new EntityTypeId(EntityType.View); EntityId entityId = new EntityId(view.Id); foreach (TablesetColumn tablesetColumn in tablesetColumnList) { Column column = null; status = dbColumnsMgr.Read(entityTypeId, entityId, tablesetColumn.Name, out column); if (!questStatusDef.IsSuccess(status)) { return(status); } tablesetColumn.Column = column; } } // Build tableset configuration tablesetConfiguration = new TablesetConfiguration(); tablesetConfiguration.Tableset = tableset; tablesetConfiguration.Database = database; tablesetConfiguration.TablesetTables = tablesetTableList; tablesetConfiguration.TablesetViews = tablesetViewList; return(new questStatus(Severity.Success)); }
public questStatus SaveTablesetConfiguration(TablesetConfiguration tablesetConfiguration, out TablesetId tablesetId) { // Initialize questStatus status = null; tablesetId = null; DbMgrTransaction trans = null; bool bFiltersRemoved = false; questStatus status2 = null; try { // BEGIN TRANSACTION status = BeginTransaction("SaveTablesetConfiguration" + Guid.NewGuid().ToString(), out trans); if (!questStatusDef.IsSuccess(status)) { return(status); } /* * Update tableset info. */ // Read the tableset TablesetsMgr tablesetsMgr = new TablesetsMgr(this.UserSession); TablesetId _tablesetId = new TablesetId(tablesetConfiguration.Tableset.Id); Tableset _tableset = null; status = tablesetsMgr.Read(trans, _tablesetId, out _tableset); if (!questStatusDef.IsSuccess(status)) { RollbackTransaction(trans); return(status); } /* * Remove all tableset entities. */ status = ClearTablesetEntities(trans, _tablesetId); if (!questStatusDef.IsSuccess(status)) { RollbackTransaction(trans); return(status); } // TESTING ONLY: COMMIT TRANSACTION bool bKlugie = false; if (bKlugie) { status = CommitTransaction(trans); if (!questStatusDef.IsSuccess(status)) { return(status); } } /* * Get database entites. */ DatabaseId databaseId = new DatabaseId(tablesetConfiguration.Database.Id); DatabaseMgr databaseMgr = new DatabaseMgr(this.UserSession); DatabaseEntities databaseEntities = null; status = databaseMgr.ReadDatabaseEntities(databaseId, out databaseEntities); if (!questStatusDef.IsSuccess(status)) { RollbackTransaction(trans); return(status); } #region Save tableset info. /* * Save tableset info. */ DbTablesetColumnsMgr dbTablesetColumnsMgr = new DbTablesetColumnsMgr(this.UserSession); // Save table info. DbTablesetTablesMgr dbTablesetTablesMgr = new DbTablesetTablesMgr(this.UserSession); List <TablesetTable> tablesetTableList = new List <TablesetTable>(); foreach (TablesetTable tablesetTable in tablesetConfiguration.TablesetTables) { Table _table = databaseEntities.TableList.Find(delegate(Table t) { return(t.Schema == tablesetTable.Schema && t.Name == tablesetTable.Name); }); if (_table == null) { RollbackTransaction(trans); return(new questStatus(Severity.Error, String.Format("ERROR: tableset table [{0}].[{1}] not found in database metainfo. Try refreshing database schema info", tablesetTable.Schema, tablesetTable.Name))); } tablesetTable.TablesetId = _tableset.Id; tablesetTable.Table = _table; tablesetTableList.Add(tablesetTable); // Create tableset table. TablesetTableId tablesetTableId = null; status = dbTablesetTablesMgr.Create(trans, tablesetTable, out tablesetTableId); if (!questStatusDef.IsSuccess(status)) { RollbackTransaction(trans); return(status); } foreach (Column column in _table.ColumnList) { Column _column = _table.ColumnList.Find(delegate(Column c) { return(c.Name == column.Name); }); if (_column == null) { RollbackTransaction(trans); return(new questStatus(Severity.Error, String.Format("ERROR: column [{0}] not found in table [{1}].[{2}] in database metainfo. Try refreshing database schema info", column.Name, _table.Schema, _table.Name))); } TablesetColumn tablesetColumn = new TablesetColumn(); tablesetColumn.EntityTypeId = EntityType.Table; tablesetColumn.TableSetEntityId = tablesetTableId.Id; tablesetColumn.Name = column.Name; TablesetColumnId tablesetColumnId = null; status = dbTablesetColumnsMgr.Create(trans, tablesetColumn, out tablesetColumnId); if (!questStatusDef.IsSuccess(status)) { RollbackTransaction(trans); return(status); } } } // Save view info. DbTablesetViewsMgr dbTablesetViewsMgr = new DbTablesetViewsMgr(this.UserSession); List <TablesetView> tablesetViewList = new List <TablesetView>(); foreach (TablesetView tablesetView in tablesetConfiguration.TablesetViews) { View _view = databaseEntities.ViewList.Find(delegate(View v) { return(v.Schema == tablesetView.Schema && v.Name == tablesetView.Name); }); if (_view == null) { RollbackTransaction(trans); return(new questStatus(Severity.Error, String.Format("ERROR: tableset view [{0}].[{1}] not found in database metainfo. Try refreshing database schema info", tablesetView.Schema, tablesetView.Name))); } tablesetView.TablesetId = _tableset.Id; tablesetView.View = _view; tablesetViewList.Add(tablesetView); // Create tableset view. TablesetViewId tablesetViewId = null; status = dbTablesetViewsMgr.Create(trans, tablesetView, out tablesetViewId); if (!questStatusDef.IsSuccess(status)) { RollbackTransaction(trans); return(status); } foreach (Column column in _view.ColumnList) { Column _column = _view.ColumnList.Find(delegate(Column c) { return(c.Name == column.Name); }); if (_column == null) { RollbackTransaction(trans); return(new questStatus(Severity.Error, String.Format("ERROR: column [{0}] not found in view [{1}].[{2}] in database metainfo. Try refreshing database schema info", column.Name, _view.Schema, _view.Name))); } TablesetColumn tablesetColumn = new TablesetColumn(); tablesetColumn.EntityTypeId = EntityType.View; tablesetColumn.TableSetEntityId = tablesetViewId.Id; tablesetColumn.Name = column.Name; TablesetColumnId tablesetColumnId = null; status = dbTablesetColumnsMgr.Create(trans, tablesetColumn, out tablesetColumnId); if (!questStatusDef.IsSuccess(status)) { RollbackTransaction(trans); return(status); } } } #endregion // Update tableset. bFiltersRemoved = false; _tableset.DatabaseId = tablesetConfiguration.Database.Id; status2 = tablesetsMgr.Update(trans, _tableset); if (!questStatusDef.IsSuccess(status2)) { if (questStatusDef.IsWarning(status2)) { bFiltersRemoved = true; } else { RollbackTransaction(trans); return(status); } } // COMMIT TRANSACTION status = CommitTransaction(trans); if (!questStatusDef.IsSuccess(status)) { return(status); } // Return the tableset id tablesetId = new TablesetId(tablesetConfiguration.Tableset.Id); } catch (System.Exception ex) { if (trans != null) { RollbackTransaction(trans); } return(new questStatus(Severity.Fatal, String.Format("EXCEPTION: {0}.{1}: {2}", this.GetType().Name, MethodBase.GetCurrentMethod().Name, ex.InnerException != null ? ex.InnerException.Message : ex.Message))); } if (bFiltersRemoved) { return(status2); } return(new questStatus(Severity.Success)); }