コード例 #1
0
        public questStatus Load(FolderId folderId, out List <FilterFolder> filterFolderList)
        {
            // Initialize
            questStatus status = null;

            filterFolderList = null;
            FiltersMgr filtersMgr = new FiltersMgr(this.UserSession);


            // Read filterFolder
            status = _dbFilterFoldersMgr.Read(folderId, out filterFolderList);
            if (!questStatusDef.IsSuccess(status))
            {
                return(status);
            }
            filterFolderList.Sort(delegate(FilterFolder i1, FilterFolder i2) { return(i1.Name.CompareTo(i2.Name)); });


            // Read filters in this folder, if we have a folderId
            if (folderId != null && folderId.Id >= BaseId.VALID_ID)
            {
                List <Filter> filterList = null;
                status = filtersMgr.Read(folderId, out filterList);
                if (!questStatusDef.IsSuccess(status))
                {
                    return(status);
                }
                filterList.Sort(delegate(Filter i1, Filter i2) { return(i1.Name.CompareTo(i2.Name)); });
            }


            // Recursively load all child folders
            foreach (FilterFolder filterFolder in filterFolderList)
            {
                FolderId            subFolderId   = new FolderId(filterFolder.Id);
                List <FilterFolder> subFolderList = null;
                status = Load(subFolderId, out subFolderList);
                if (!questStatusDef.IsSuccess(status))
                {
                    return(status);
                }
                subFolderList.Sort(delegate(FilterFolder i1, FilterFolder i2) { return(i1.Name.CompareTo(i2.Name)); });
                filterFolder.Folders.AddRange(subFolderList);


                List <Filter> filterList = null;
                status = filtersMgr.Read(subFolderId, out filterList);
                if (!questStatusDef.IsSuccess(status))
                {
                    return(status);
                }
                filterList.Sort(delegate(Filter i1, Filter i2) { return(i1.Name.CompareTo(i2.Name)); });
                filterFolder.Filters = filterList;
            }
            return(new questStatus(Severity.Success));
        }
コード例 #2
0
        public questStatus GetFilterDatabase(Quest.Functional.MasterPricing.FilterId filterId, out Quest.Functional.MasterPricing.Database database)
        {
            // Initialize
            questStatus status = null;

            database = null;


            // Get filter
            Filter     filter     = null;
            FiltersMgr filtersMgr = new FiltersMgr(this.UserSession);

            status = filtersMgr.Read(filterId, out filter);
            if (!questStatusDef.IsSuccess(status))
            {
                return(status);
            }


            // Get tableset
            Tableset     tableset     = null;
            TablesetId   tablesetId   = new TablesetId(filter.TablesetId);
            TablesetsMgr tablesetsMgr = new TablesetsMgr(this.UserSession);

            status = tablesetsMgr.Read(tablesetId, out tableset);
            if (!questStatusDef.IsSuccess(status))
            {
                return(status);
            }


            // Get database
            DatabaseId   databaseId   = new DatabaseId(tableset.DatabaseId);
            DatabasesMgr databasesMgr = new DatabasesMgr(this.UserSession);

            status = databasesMgr.Read(databaseId, out database);
            if (!questStatusDef.IsSuccessOrWarning(status))
            {
                return(status);
            }
            return(new questStatus(Severity.Success));
        }
コード例 #3
0
        public questStatus Verify(FilterId filterId, Filter filter)
        {
            // Initialize
            questStatus status = null;


            // Verify filter Id
            Filter     _filter    = null;
            FiltersMgr filtersMgr = new FiltersMgr(this.UserSession);

            status = filtersMgr.Read(filterId, out _filter);
            if (!questStatusDef.IsSuccess(status))
            {
                return(new questStatus(Severity.Error, String.Format("Error reading FilterId {0} not found: {0}",
                                                                     filterId.Id, status.Message)));
            }

            // Verify tableset Id
            TablesetId   tablesetId   = new TablesetId(filter.TablesetId);
            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("Error reading TablesetId not found: {0}",
                                                                     tablesetId, status.Message)));
            }


            // Make shift validation for now.
            status = Verify(filter);
            if (!questStatusDef.IsSuccess(status))
            {
                return(status);
            }
            return(new questStatus(Severity.Success));
        }
コード例 #4
0
        /*==================================================================================================================================
        * Public Methods
        *=================================================================================================================================*/
        public questStatus Delete(FilterFolderId filterFolderId)
        {
            // Initialize
            questStatus      status = null;
            DbMgrTransaction trans  = null;
            Mgr mgr = new Mgr(this.UserSession);

            try
            {
                // BEGIN TRANSACTION
                status = mgr.BeginTransaction("DeleteFolder_" + filterFolderId.Id.ToString() + "_" + Guid.NewGuid().ToString(), out trans);
                if (!questStatusDef.IsSuccess(status))
                {
                    return(status);
                }

                // Load folder contents
                FolderId            folderId         = new FolderId(filterFolderId.Id);
                List <FilterFolder> filterFolderList = null;
                FilterFoldersMgr    filterFoldersMgr = new FilterFoldersMgr(this.UserSession);
                status = filterFoldersMgr.Load(folderId, out filterFolderList);
                if (!questStatusDef.IsSuccess(status))
                {
                    mgr.RollbackTransaction(trans);
                    return(status);
                }

                // Clear out the folder
                status = clearFolder(trans, filterFolderList);
                if (!questStatusDef.IsSuccess(status))
                {
                    mgr.RollbackTransaction(trans);
                    return(status);
                }

                // Get fitlers in this folder.
                List <Quest.Functional.MasterPricing.Filter> filterList = null;
                FiltersMgr filtersMgr = new FiltersMgr(this.UserSession);
                status = filtersMgr.Read(folderId, out filterList);
                if (!questStatusDef.IsSuccess(status))
                {
                    mgr.RollbackTransaction(trans);
                    return(status);
                }

                // Delete filters in this folder
                foreach (Filter filter in filterList)
                {
                    FilterId filterId = new FilterId(filter.Id);
                    status = _dbFolderMgr.DeleteFilter(filterId);
                    if (!questStatusDef.IsSuccess(status))
                    {
                        return(status);
                    }
                }

                // Delete the folder.
                status = _filterFoldersMgr.Delete(trans, filterFolderId);
                if (!questStatusDef.IsSuccess(status))
                {
                    mgr.RollbackTransaction(trans);
                    return(status);
                }

                // COMMIT TRANSACTION
                status = mgr.CommitTransaction(trans);
                if (!questStatusDef.IsSuccess(status))
                {
                    return(status);
                }
            }
            catch (System.Exception ex)
            {
                if (trans != null)
                {
                    mgr.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)));
            }
            return(new questStatus(Severity.Success));
        }
コード例 #5
0
        /*==================================================================================================================================
        * Public Methods
        *=================================================================================================================================*/
        public questStatus Save(FilterId filterId, Filter filter)
        {
            // Initialize
            questStatus      status     = null;
            Mgr              mgr        = new Mgr(this.UserSession);
            DbMgrTransaction trans      = null;
            FiltersMgr       filtersMgr = new FiltersMgr(this.UserSession);
            ColumnsMgr       columnMgr  = new ColumnsMgr(this.UserSession);


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


                // BEGIN TRANSACTION
                status = mgr.BeginTransaction("SaveFilter" + Guid.NewGuid().ToString(), out trans);
                if (!questStatusDef.IsSuccess(status))
                {
                    return(status);
                }


                // Save the filter
                status = Save(trans, filterId, filter);
                if (!questStatusDef.IsSuccess(status))
                {
                    mgr.RollbackTransaction(trans);

                    if (bLogging)
                    {
                        Filter _filter = null;
                        status = filtersMgr.Read(filterId, out _filter);
                        if (!questStatusDef.IsSuccess(status))
                        {
                            return(status);
                        }

                        FilterLog filterLog = new FilterLog();
                        filterLog.Database = "";
                        filterLog.Tableset = "Tableset.Id=" + filter.TablesetId.ToString();
                        filterLog.Name     = _filter.Name;
                        filterLog.Event    = "SAVE";
                        filterLog.Data     = status.ToString();
                        FilterLogId filterLogId = null;
                        _dbFilterLogsMgr.Create(filterLog, out filterLogId);
                    }
                    return(status);
                }


                // COMMIT TRANSACTION
                status = mgr.CommitTransaction(trans);
                if (!questStatusDef.IsSuccess(status))
                {
                    return(status);
                }

                // Logging
                if (bLogging)
                {
                    Filter _filter = null;
                    status = filtersMgr.Read(filterId, out _filter);
                    if (!questStatusDef.IsSuccess(status))
                    {
                        return(status);
                    }

                    FilterLog filterLog = new FilterLog();
                    filterLog.Database = "";
                    filterLog.Tableset = "Tableset.Id=" + filter.TablesetId.ToString();
                    filterLog.Name     = _filter.Name;
                    filterLog.Event    = "SAVE";
                    filterLog.Data     = status.ToString();
                    FilterLogId filterLogId = null;
                    _dbFilterLogsMgr.Create(filterLog, out filterLogId);
                }

                // TODO: REFACTOR TO GET ALL-IN-ONE TRANSACTION
                // Generate filter SQL
                Filter      filterWithSQL = null;
                DbFilterMgr dbFilterMgr   = new DbFilterMgr(this.UserSession);
                status = dbFilterMgr.GenerateFilterSQL(filterId, out filterWithSQL);
                if (!questStatusDef.IsSuccess(status))
                {
                    return(status);
                }

                // Update filter
                status = filtersMgr.Update(filterWithSQL);
                if (!questStatusDef.IsSuccess(status))
                {
                    return(status);
                }
            }
            catch (System.Exception ex)
            {
                if (trans != null)
                {
                    mgr.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)));
            }
            return(new questStatus(Severity.Success));
        }