public questStatus Read(FilterId filterId, out FilterSQLViewModel filterSQLViewModel) { // Initialize questStatus status = null; filterSQLViewModel = null; // Read filter Quest.Functional.MasterPricing.Filter filter = null; FilterMgr filterMgr = new FilterMgr(this.UserSession); status = filterMgr.GetFilter(filterId, out filter); if (!questStatusDef.IsSuccess(status)) { return(status); } // Transfer model filterSQLViewModel = new FilterSQLViewModel(); BufferMgr.TransferBuffer(filter, filterSQLViewModel); if (string.IsNullOrEmpty(filterSQLViewModel.SQL)) { return(new questStatus(Severity.Warning, "Filter has no SQL")); } return(new questStatus(Severity.Success)); }
/*================================================================================================================================== * Public Methods *=================================================================================================================================*/ public questStatus PerformBulkUpdate(BulkUpdateRequest bulkUpdateRequest, out int numRows) { // Initialize questStatus status = null; numRows = -1; // Get the filter Filter filter = null; FilterId filterId = new FilterId(bulkUpdateRequest.FilterId); FilterMgr filterMgr = new FilterMgr(this.UserSession); status = filterMgr.GetFilter(filterId, out filter); if (!questStatusDef.IsSuccess(status)) { return(status); } bulkUpdateRequest.Filter = filter; // Determine if bulk update filter procedure exists. FilterProcedure filterProcedure = null; status = _dbBulkUpdateMgr.GetFilterProcedure(bulkUpdateRequest, "Update", out filterProcedure); if (!questStatusDef.IsSuccessOrWarning(status)) { return(status); } // Perform bulk update filter procedure if exists. if (questStatusDef.IsSuccess(status)) { return(PerformBulkUpdateFilterProcedure(bulkUpdateRequest, filterProcedure)); } // Generate the SQL status = _dbBulkUpdateMgr.GenerateBulkUpdateSQL(bulkUpdateRequest); if (!questStatusDef.IsSuccess(status)) { return(status); } // Perform bulk update. status = _dbBulkUpdateMgr.PerformBulkUpdate(bulkUpdateRequest, out numRows); if (!questStatusDef.IsSuccess(status)) { return(status); } return(new questStatus(Severity.Success)); }
public questStatus Read(FilterId filterId, out FilterEditorViewModel filterEditorViewModel) { // Initialize questStatus status = null; filterEditorViewModel = null; // Read filter Quest.Functional.MasterPricing.Filter filter = null; FilterMgr filterMgr = new FilterMgr(this.UserSession); status = filterMgr.GetFilter(filterId, out filter); if (!questStatusDef.IsSuccess(status)) { return(status); } // Transfer model filterEditorViewModel = new FilterEditorViewModel(); BufferMgr.TransferBuffer(filter, filterEditorViewModel); foreach (FilterTable filterTable in filter.FilterTableList) { BootstrapTreenodeViewModel bootstrapTreenodeViewModel = null; status = FormatBootstrapTreeviewNode(filterTable, out bootstrapTreenodeViewModel); if (!questStatusDef.IsSuccess(status)) { return(status); } filterEditorViewModel.Entities.Add(bootstrapTreenodeViewModel); } foreach (FilterView filterView in filter.FilterViewList) { BootstrapTreenodeViewModel bootstrapTreenodeViewModel = null; status = FormatBootstrapTreeviewNode(filterView, out bootstrapTreenodeViewModel); if (!questStatusDef.IsSuccess(status)) { return(status); } filterEditorViewModel.Entities.Add(bootstrapTreenodeViewModel); } foreach (FilterItem filterItem in filter.FilterItemList) { FilterItemViewModel filterItemViewModel = new FilterItemViewModel(); filterItemViewModel.Id = filterItem.Id; ////filterItemViewModel.Name = filterItem.TablesetColumn.Name; filterItemViewModel.Name = filterItem.FilterColumn.TablesetColumn.Column.Name; filterItemViewModel.Label = filterItem.Label; filterItemViewModel.ParameterName = filterItem.ParameterName; filterItemViewModel.bHidden = filterItem.bHidden; filterItemViewModel.bBulkUpdateValueRequired = filterItem.bBulkUpdateValueRequired; filterItemViewModel.Entity.type = "column"; // TODO: ALL THAT'S SUPPORTED RIGHT NOW. filterItemViewModel.Entity.Schema = null; filterItemViewModel.Entity.Name = filterItem.FilterColumn.TablesetColumn.Column.Name; BufferMgr.TransferBuffer(filterItem.FilterColumn.TablesetColumn.Column, filterItemViewModel.Entity.Column); filterItemViewModel.ParentEntity.type = filterItem.FilterColumn.ParentEntityType.type; filterItemViewModel.ParentEntity.Schema = filterItem.FilterColumn.ParentEntityType.Schema; filterItemViewModel.ParentEntity.Name = filterItem.FilterColumn.ParentEntityType.Name; // Joins foreach (FilterItemJoin filterItemJoin in filterItem.JoinList) { FilterItemJoinViewModel filterItemJoinViewModel = new FilterItemJoinViewModel(); BufferMgr.TransferBuffer(filterItemJoin, filterItemJoinViewModel); filterItemJoinViewModel.Identifier = '[' + filterItemJoin.TargetSchema + "].[" + filterItemJoin.TargetEntityName + "].[" + filterItemJoin.TargetColumnName + "]"; filterItemViewModel.Joins.Add(filterItemJoinViewModel); } // Operations foreach (FilterOperation filterOperation in filterItem.OperationList) { FilterOperationViewModel filterOperationViewModel = new FilterOperationViewModel(); filterOperationViewModel.Id = filterOperation.Id; filterOperationViewModel.Operator = filterOperation.FilterOperatorId; // Views foreach (FilterValue filterValue in filterOperation.ValueList) { FilterValueViewModel filterValueViewModel = new FilterValueViewModel(); filterValueViewModel.Id = filterValue.Id; filterValueViewModel.Value = filterValue.Value; filterOperationViewModel.Values.Add(filterValueViewModel); } filterItemViewModel.Operations.Add(filterOperationViewModel); } // Lookup if (filterItem.LookupId.HasValue) { FilterItemLookupViewModel filterItemLookupViewModel = new FilterItemLookupViewModel(); filterItemLookupViewModel.Id = filterItem.Lookup.Id; filterItemLookupViewModel.Name = filterItem.Lookup.Name; filterItemViewModel.Lookup = filterItemLookupViewModel; } // TypeList if (filterItem.TypeListId.HasValue) { FilterItemTypeListViewModel filterItemTypeListViewModel = new FilterItemTypeListViewModel(); filterItemTypeListViewModel.Id = filterItem.TypeList.Id; filterItemTypeListViewModel.Name = filterItem.TypeList.Name; filterItemViewModel.TypeList = filterItemTypeListViewModel; } filterEditorViewModel.Items.Add(filterItemViewModel); } foreach (FilterProcedure filterProcedure in filter.FilterProcedureList) { FilterProcedureViewModel filterProcedureViewModel = new FilterProcedureViewModel(); BufferMgr.TransferBuffer(filterProcedure, filterProcedureViewModel); foreach (FilterProcedureParameter filterProcedureParameter in filterProcedure.ParameterList) { FilterProcedureParameterViewModel filterProcedureParameterViewModel = new FilterProcedureParameterViewModel(); BufferMgr.TransferBuffer(filterProcedureParameter, filterProcedureParameterViewModel, true); filterProcedureParameterViewModel.Precision = filterProcedureParameter.Precision[0]; filterProcedureParameterViewModel.Scale = filterProcedureParameter.Scale[0]; filterProcedureViewModel.Parameters.Add(filterProcedureParameterViewModel); } filterEditorViewModel.Procedures.Add(filterProcedureViewModel); } return(new questStatus(Severity.Success)); }
public questStatus Run(FilterRunViewModel filterRunViewModel, out FilterRunViewModel filterRunResultsViewModel, out ResultsSet resultsSet) { // Initialize questStatus status = null; filterRunResultsViewModel = null; resultsSet = null; // NOTE: THIS IS FOR RUNNING A FILTER THAT IS --NOT-- IN THE DATABASE. HOWEVER IT IS *BASED* ON A FILTER IN THE DATABASE, THUS A VALID FILTER ID MUST BE GIVEN. FilterMgr filterMgr = new FilterMgr(this.UserSession); // Get the filter FilterId filterId = new FilterId(filterRunViewModel.FilterId); Quest.Functional.MasterPricing.Filter filterFROMDatabase = null; status = filterMgr.GetFilter(filterId, out filterFROMDatabase); if (!questStatusDef.IsSuccess(status)) { return(status); } // Merge view model into filter from database. Quest.Functional.MasterPricing.Filter filter = null; status = MergeFilterEditorViewModel(filterRunViewModel, filterFROMDatabase, out filter); if (!questStatusDef.IsSuccess(status)) { return(status); } // Verify the filter status = filterMgr.Verify(filter); if (!questStatusDef.IsSuccess(status)) { return(status); } // Generate filter SQL Quest.Functional.MasterPricing.Filter filterWithSQL = null; status = filterMgr.GenerateFilterSQL(filter, out filterWithSQL); if (!questStatusDef.IsSuccess(status)) { return(status); } // Run the filter RunFilterRequest runFilterRequest = new RunFilterRequest(); // Filter Id doesn't matter, non-DB filter run request. runFilterRequest.RowLimit = filterRunViewModel._ResultsOptions.RowLimit; runFilterRequest.ColLimit = filterRunViewModel._ResultsOptions.ColLimit; status = filterMgr.Run(runFilterRequest, filterWithSQL, out resultsSet); if (!questStatusDef.IsSuccess(status)) { return(status); } // Transfer results to view model. status = TransferResults(resultsSet, out filterRunResultsViewModel); if (!questStatusDef.IsSuccess(status)) { return(status); } if (string.IsNullOrEmpty(filterRunViewModel.Name)) { filterRunResultsViewModel.Name = filterFROMDatabase.Name; } return(new questStatus(Severity.Success)); }