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)); }
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)); }
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)); }
/*================================================================================================================================== * 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)); }
/*================================================================================================================================== * 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)); }