Beispiel #1
0
        public questStatus Delete(DbMgrTransaction trans, FilterTableId filterTableId)
        {
            // Initialize
            questStatus status = null;


            // Perform delete in this transaction.
            status = delete((MasterPricingEntities)trans.DbContext, filterTableId);
            if (!questStatusDef.IsSuccess(status))
            {
                RollbackTransaction(trans);
                return(status);
            }
            return(new questStatus(Severity.Success));
        }
        public questStatus Create(DbMgrTransaction trans, FilterTable filterTable, out FilterTableId filterTableId)
        {
            // Initialize
            questStatus status = null;

            filterTableId = null;


            // Create filterTable
            status = _dbFilterTablesMgr.Create(trans, filterTable, out filterTableId);
            if (!questStatusDef.IsSuccess(status))
            {
                return(status);
            }
            return(new questStatus(Severity.Success));
        }
        public questStatus Read(DbMgrTransaction trans, FilterTableId filterTableId, out FilterTable filterTable)
        {
            // Initialize
            questStatus status = null;

            filterTable = null;


            // Read filterTable
            status = _dbFilterTablesMgr.Read(trans, filterTableId, out filterTable);
            if (!questStatusDef.IsSuccess(status))
            {
                return(status);
            }
            return(new questStatus(Severity.Success));
        }
        public questStatus Delete(FilterId filterId, FilterTableId filterTableId)
        {
            // Initialize
            questStatus status = null;


            // Perform delete.
            using (MasterPricingEntities dbContext = new MasterPricingEntities())
            {
                status = delete(dbContext, filterId, filterTableId);
                if (!questStatusDef.IsSuccess(status))
                {
                    return(status);
                }
            }
            return(new questStatus(Severity.Success));
        }
Beispiel #5
0
        public questStatus Read(DbMgrTransaction trans, FilterTableId filterTableId, out Quest.Functional.MasterPricing.FilterTable filterTable)
        {
            // Initialize
            questStatus status = null;

            filterTable = null;


            // Perform read
            Quest.Services.Dbio.MasterPricing.FilterTables _filterTables = null;
            status = read((MasterPricingEntities)trans.DbContext, filterTableId, out _filterTables);
            if (!questStatusDef.IsSuccess(status))
            {
                return(status);
            }
            filterTable = new Quest.Functional.MasterPricing.FilterTable();
            BufferMgr.TransferBuffer(_filterTables, filterTable);

            return(new questStatus(Severity.Success));
        }
        private questStatus read(MasterPricingEntities dbContext, FilterId filterId, FilterTableId filterTableId, out List <Quest.Services.Dbio.MasterPricing.FilterColumns> filterColumnList)
        {
            // Initialize
            filterColumnList = null;


            try
            {
                filterColumnList = dbContext.FilterColumns.Where(r => r.FilterId == filterId.Id && r.FilterEntityTypeId == FilterEntityType.Table && r.FilterEntityId == filterTableId.Id).ToList();
                if (filterColumnList == null)
                {
                    return(new questStatus(Severity.Error, String.Format("ERROR: {0}.{1}: {2}",
                                                                         this.GetType().Name, MethodBase.GetCurrentMethod().Name,
                                                                         String.Format("FilterColumn for FilterTableId {0} not found", filterTableId.Id))));
                }
            }
            catch (System.Exception ex)
            {
                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)));
            }
            return(new questStatus(Severity.Success));
        }
Beispiel #7
0
        private questStatus read(MasterPricingEntities dbContext, FilterTableId filterTableId, out Quest.Services.Dbio.MasterPricing.FilterTables filterTable)
        {
            // Initialize
            filterTable = null;


            try
            {
                filterTable = dbContext.FilterTables.Where(r => r.Id == filterTableId.Id).SingleOrDefault();
                if (filterTable == null)
                {
                    return(new questStatus(Severity.Error, String.Format("ERROR: {0}.{1}: {2}",
                                                                         this.GetType().Name, MethodBase.GetCurrentMethod().Name,
                                                                         String.Format("Id {0} not found", filterTableId.Id))));
                }
            }
            catch (System.Exception ex)
            {
                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)));
            }
            return(new questStatus(Severity.Success));
        }
 private questStatus delete(MasterPricingEntities dbContext, FilterId filterId, FilterTableId filterTableId)
 {
     try
     {
         dbContext.FilterColumns.RemoveRange(dbContext.FilterColumns.Where(
                                                 r => r.FilterId == filterId.Id && r.FilterEntityTypeId == FilterEntityType.Table && r.FilterEntityId == filterTableId.Id));
         dbContext.SaveChanges();
     }
     catch (System.Exception ex)
     {
         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)));
     }
     return(new questStatus(Severity.Success));
 }
Beispiel #9
0
        public questStatus Create(DbMgrTransaction trans, Quest.Functional.MasterPricing.FilterTable filterTable, out FilterTableId filterTableId)
        {
            // Initialize
            questStatus status = null;

            filterTableId = null;


            // Data rules.


            // Create the filterTable in this transaction.
            status = create((MasterPricingEntities)trans.DbContext, filterTable, out filterTableId);
            if (!questStatusDef.IsSuccess(status))
            {
                return(status);
            }
            return(new questStatus(Severity.Success));
        }
Beispiel #10
0
        /*==================================================================================================================================
        * Properties
        *=================================================================================================================================*/
        #endregion


        #region Public Methods

        /*==================================================================================================================================
        * Public Methods
        *=================================================================================================================================*/
        public questStatus Create(Quest.Functional.MasterPricing.FilterTable filterTable, out FilterTableId filterTableId)
        {
            // Initialize
            questStatus status = null;

            filterTableId = null;


            // Data rules.


            // Create the filterTable
            using (MasterPricingEntities dbContext = new MasterPricingEntities())
            {
                status = create(dbContext, filterTable, out filterTableId);
                if (!questStatusDef.IsSuccess(status))
                {
                    return(status);
                }
            }
            return(new questStatus(Severity.Success));
        }
Beispiel #11
0
        /*----------------------------------------------------------------------------------------------------------------------------------
        * FilterTables
        *---------------------------------------------------------------------------------------------------------------------------------*/
        private questStatus create(MasterPricingEntities dbContext, Quest.Functional.MasterPricing.FilterTable filterTable, out FilterTableId filterTableId)
        {
            // Initialize
            filterTableId = null;


            // Perform create
            try
            {
                Quest.Services.Dbio.MasterPricing.FilterTables _filterTables = new Quest.Services.Dbio.MasterPricing.FilterTables();
                BufferMgr.TransferBuffer(filterTable, _filterTables);
                dbContext.FilterTables.Add(_filterTables);
                dbContext.SaveChanges();
                if (_filterTables.Id == 0)
                {
                    return(new questStatus(Severity.Error, "Quest.Functional.MasterPricing.FilterTable not created"));
                }
                filterTableId = new FilterTableId(_filterTables.Id);
            }
            catch (System.Exception ex)
            {
                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)));
            }
            return(new questStatus(Severity.Success));
        }
        public questStatus Save(DbMgrTransaction trans, FilterId filterId, Filter filter)
        {
            // Initialize
            questStatus status    = null;
            Mgr         mgr       = new Mgr(this.UserSession);
            ColumnsMgr  columnMgr = new ColumnsMgr(this.UserSession);


            try
            {
                // Validate filter
                status = Verify(filterId, filter);
                if (!questStatusDef.IsSuccess(status))
                {
                    return(status);
                }


                // Remove filter entities, items and values.  Also, tables and columns.
                status = _dbFilterMgr.Clear(trans, filterId);
                if (!questStatusDef.IsSuccess(status))
                {
                    return(status);
                }

                // Save filter tables
                FilterTablesMgr filterTablesMgr = new FilterTablesMgr(this.UserSession);
                foreach (FilterTable filterTable in filter.FilterTableList)
                {
                    filterTable.FilterId = filter.Id;
                    FilterTableId filterTableId = null;
                    status = filterTablesMgr.Create(trans, filterTable, out filterTableId);
                    if (!questStatusDef.IsSuccess(status))
                    {
                        return(status);
                    }
                    filterTable.Id = filterTableId.Id;
                }

                // Save filter views
                FilterViewsMgr filterViewsMgr = new FilterViewsMgr(this.UserSession);
                foreach (FilterView _filterView in filter.FilterViewList)
                {
                    _filterView.FilterId = filter.Id;
                    FilterViewId filterViewId = null;
                    status = filterViewsMgr.Create(trans, _filterView, out filterViewId);
                    if (!questStatusDef.IsSuccess(status))
                    {
                        return(status);
                    }
                    _filterView.Id = filterViewId.Id;
                }

                // Save filter columns
                DbFilterMgr      dbFilterMgr      = new DbFilterMgr(this.UserSession);
                FilterColumnsMgr filterColumnsMgr = new FilterColumnsMgr(this.UserSession);
                foreach (FilterColumn filterColumn in filter.FilterColumnList)
                {
                    if (filterColumn.FilterEntityId < BaseId.VALID_ID)
                    {
                        // Get the FilterTable or FilterView Id.
                        // This is a klugie.  Gotta rework DataManager panel first, though.  No time to do that.
                        if (filterColumn.FilterEntityTypeId == FilterEntityType.Table)
                        {
                            TablesetTable tablesetTable = null;
                            status = dbFilterMgr.GetTablesetTable(filterColumn, out tablesetTable);
                            if (!questStatusDef.IsSuccess(status))
                            {
                                return(status);
                            }
                            FilterTable filterTable = filter.FilterTableList.Find(delegate(FilterTable t) { return(t.Schema == tablesetTable.Schema && t.Name == tablesetTable.Name); });
                            if (filterTable == null)
                            {
                                return(new questStatus(Severity.Error, String.Format("ERROR: FilterTable not found for TableSetTable Schema:{0} Name:{1}",
                                                                                     tablesetTable.Schema, tablesetTable.Name)));
                            }
                            filterColumn.FilterEntityId = filterTable.Id;
                        }
                        else if (filterColumn.FilterEntityTypeId == FilterEntityType.View)
                        {
                            TablesetView tablesetView = null;
                            status = dbFilterMgr.GetTablesetView(filterColumn, out tablesetView);
                            if (!questStatusDef.IsSuccess(status))
                            {
                                return(status);
                            }
                            FilterView filterView = filter.FilterViewList.Find(delegate(FilterView v) { return(v.Schema == tablesetView.Schema && v.Name == tablesetView.Name); });
                            if (filterView == null)
                            {
                                return(new questStatus(Severity.Error, String.Format("ERROR: FilterView not found for TableSetTable Schema:{0} Name:{1}",
                                                                                     tablesetView.Schema, tablesetView.Name)));
                            }
                            filterColumn.FilterEntityId = filterView.Id;
                        }
                        else
                        {
                            return(new questStatus(Severity.Error, String.Format("ERROR: FilterColumn FilterEntityTypeId {0} not supported.  FilterColumn {1}",
                                                                                 filterColumn.FilterEntityTypeId, filterColumn.Id)));
                        }
                    }

                    // Save
                    FilterColumnId filterColumnId = null;
                    status = filterColumnsMgr.Create(trans, filterColumn, out filterColumnId);
                    if (!questStatusDef.IsSuccess(status))
                    {
                        return(status);
                    }
                    filterColumn.Id = filterColumnId.Id;
                }


                // Save filter items.
                FilterItemsMgr      filterItemsMgr      = new FilterItemsMgr(this.UserSession);
                FilterItemJoinsMgr  filterItemJoinsMgr  = new FilterItemJoinsMgr(this.UserSession);
                FilterOperationsMgr filterOperationsMgr = new FilterOperationsMgr(this.UserSession);
                FilterValuesMgr     filterValuesMgr     = new FilterValuesMgr(this.UserSession);
                foreach (FilterItem filterItem in filter.FilterItemList)
                {
                    FilterColumn filterColumn = null;

                    // Get filterItem FilterEntityId
                    if (filterItem.FilterEntityId < BaseId.VALID_ID)
                    {
                        status = dbFilterMgr.GetFilterColumn(filter, filterItem, out filterColumn);
                        if (!questStatusDef.IsSuccess(status))
                        {
                            return(status);
                        }
                        filterItem.FilterEntityId = filterColumn.Id;
                        filterItem.FilterColumn   = filterColumn;      // helps with bookkeeping further down.
                    }

                    // Save FilterItem
                    FilterItemId filterItemId = null;
                    status = filterItemsMgr.Create(trans, filterItem, out filterItemId);
                    if (!questStatusDef.IsSuccess(status))
                    {
                        return(status);
                    }
                    filterItem.Id = filterItemId.Id;


                    //  Save filter item joins
                    foreach (FilterItemJoin filterItemJoin in filterItem.JoinList)
                    {
                        filterItemJoin.FilterItemId = filterItemId.Id;


                        if (string.IsNullOrEmpty(filterItemJoin.SourceSchema) || string.IsNullOrEmpty(filterItemJoin.SourceEntityName) || string.IsNullOrEmpty(filterItemJoin.SourceColumnName))
                        {
                            // Get join target type (Table or View)
                            TablesetColumnId tablesetColumnId = new TablesetColumnId(filterItemJoin.ColumnId);
                            TablesetTable    tablesetTable    = null;
                            TablesetView     tablesetView     = null;
                            status = getJoinTarget(tablesetColumnId, out tablesetTable, out tablesetView);
                            if (!questStatusDef.IsSuccess(status))
                            {
                                return(status);
                            }
                            filterItemJoin.TargetEntityTypeId = tablesetTable == null ? FilterEntityType.View : FilterEntityType.Table;

                            // Get target identifier parts.
                            string targetSchema     = null;
                            string targetEntityName = null;
                            string targetColumnName = null;
                            SQLIdentifier.ParseThreePartIdentifier(filterItemJoin.Identifier, out targetSchema, out targetEntityName, out targetColumnName);
                            filterItemJoin.TargetSchema     = targetSchema;
                            filterItemJoin.TargetEntityName = targetEntityName;
                            filterItemJoin.TargetColumnName = targetColumnName;


                            // Get source identifier parts.
                            string sourceSchema     = null;
                            string sourceEntityName = null;
                            string sourceColumnName = null;
                            if (filterColumn.FilterEntityTypeId == FilterEntityType.Table)
                            {
                                FilterTable filterTable = filter.FilterTableList.Find(delegate(FilterTable t) { return(filterColumn.FilterEntityId == t.Id); });
                                if (filterTable == null)
                                {
                                    return(new questStatus(Severity.Error, String.Format("ERROR: building Join on {0}, FilterTable {1} not found",
                                                                                         filterItemJoin.Identifier, filterColumn.FilterEntityId)));
                                }
                                sourceSchema     = filterTable.Schema;
                                sourceEntityName = filterTable.Name;
                            }
                            else if (filterColumn.FilterEntityTypeId == FilterEntityType.View)
                            {
                                FilterView filterView = filter.FilterViewList.Find(delegate(FilterView v) { return(filterColumn.FilterEntityId == v.Id); });
                                if (filterView == null)
                                {
                                    return(new questStatus(Severity.Error, String.Format("ERROR: building Join on {0}, FilterView {1} not found",
                                                                                         filterItemJoin.Identifier, filterColumn.FilterEntityId)));
                                }
                                sourceSchema     = filterView.Schema;
                                sourceEntityName = filterView.Name;
                            }
                            sourceColumnName                = filterColumn.Name;
                            filterItemJoin.SourceSchema     = sourceSchema;
                            filterItemJoin.SourceEntityName = sourceEntityName;
                            filterItemJoin.SourceColumnName = sourceColumnName;
                        }

                        // Create FilterItemJoin
                        FilterItemJoinId filterItemJoinId = null;
                        status = filterItemJoinsMgr.Create(trans, filterItemJoin, out filterItemJoinId);
                        if (!questStatusDef.IsSuccess(status))
                        {
                            return(status);
                        }
                    }

                    // Save filter operations
                    foreach (FilterOperation filterOperation in filterItem.OperationList)
                    {
                        filterOperation.FilterItemId = filterItem.Id;

                        FilterOperationId filterOperationId = null;
                        status = filterOperationsMgr.Create(trans, filterOperation, out filterOperationId);
                        if (!questStatusDef.IsSuccess(status))
                        {
                            return(status);
                        }

                        // Save filter values
                        foreach (FilterValue filterValue in filterOperation.ValueList)
                        {
                            filterValue.FilterOperationId = filterOperationId.Id;
                            FilterValueId filterValueId = null;
                            status = filterValuesMgr.Create(trans, filterValue, out filterValueId);
                            if (!questStatusDef.IsSuccess(status))
                            {
                                return(status);
                            }
                        }
                    }
                }

                // Save filter procedures
                //     Get the filter's database.
                Quest.Functional.MasterPricing.Database database = null;
                status = GetFilterDatabase(filterId, out database);
                if (!questStatusDef.IsSuccess(status))
                {
                    return(status);
                }
                // NOTE: business rules reads in procedure parameters and writes them.
                FilterProceduresMgr filterProceduresMgr = new FilterProceduresMgr(this.UserSession);
                foreach (FilterProcedure filterProcedure in filter.FilterProcedureList)
                {
                    if (string.IsNullOrEmpty(filterProcedure.Name))
                    {
                        continue;
                    }
                    filterProcedure.FilterId = filter.Id;
                    FilterProcedureId filterProcedureId = null;
                    status = filterProceduresMgr.Create(trans, database, filterProcedure, out filterProcedureId);
                    if (!questStatusDef.IsSuccess(status))
                    {
                        return(status);
                    }
                }

                // NOTE: YOU STILL HAVE TO UPDATE THE FILTER'S SQL.  BUT, CAN'T HERE, B/C YOU'RE IN A TRANSACTION.
                // TODO: REFACTOR SO YOU CAN, BUT GOTTA GET A PARAMETERS MAKE-REQUIRED UPDATE OUT THERE FIRST.
            }
            catch (System.Exception ex)
            {
                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)));
            }
            return(new questStatus(Severity.Success));
        }