コード例 #1
0
        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));
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        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));
        }
コード例 #4
0
        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));
        }
コード例 #5
0
        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));
        }
コード例 #6
0
        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));
        }