private questStatus create(MasterPricingEntities dbContext, List <Quest.Functional.MasterPricing.FilterItemJoin> filterItemJoinList, out List <Quest.Functional.MasterPricing.FilterItemJoin> filterItemJoinIdList) { // Initialize filterItemJoinIdList = null; // Perform create try { List <Quest.Services.Dbio.MasterPricing.FilterItemJoins> _filterItemJoinList = new List <Quest.Services.Dbio.MasterPricing.FilterItemJoins>(); foreach (Quest.Functional.MasterPricing.FilterItemJoin filterItemJoin in filterItemJoinList) { Quest.Services.Dbio.MasterPricing.FilterItemJoins _filterItemJoin = new Quest.Services.Dbio.MasterPricing.FilterItemJoins(); BufferMgr.TransferBuffer(filterItemJoin, _filterItemJoin); _filterItemJoinList.Add(_filterItemJoin); } dbContext.FilterItemJoins.AddRange(_filterItemJoinList); dbContext.SaveChanges(); filterItemJoinIdList = new List <FilterItemJoin>(); foreach (Quest.Services.Dbio.MasterPricing.FilterItemJoins _filterItemJoin in _filterItemJoinList) { Quest.Functional.MasterPricing.FilterItemJoin filterItemJoin = new FilterItemJoin(); filterItemJoin.Id = _filterItemJoin.Id; filterItemJoinIdList.Add(filterItemJoin); } } 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 JoinEntity() { Type = new FilterEntityType(); FilterItem = new FilterItem(); FilterTable = new FilterTable(); FilterView = new FilterView(); TablesetColumn = new TablesetColumn(); FilterColumn = new FilterColumn(); FilterItemJoin = new FilterItemJoin(); }
private questStatus getJoinTargetColumnId(Filter filter, FilterItemJoin filterItemJoin) { if (filterItemJoin.TargetEntityTypeId == FilterEntityType.Table) { // Get the TablesetColumnId for the given join. FilterTable filterTable = filter.FilterTableList.Find(delegate(FilterTable t) { return(filterItemJoin.TargetSchema == t.Schema && filterItemJoin.TargetEntityName == t.Name); }); if (filterTable == null) { return(new questStatus(String.Format("ERROR: seeking FilterItemJoin {0} TablesetColumnId not found (FilterTable) [{1}].[{2}]", filterItemJoin.Id, filterItemJoin.TargetSchema, filterItemJoin.TargetEntityName))); } // Now get the TablesetColumnId for the given column name FilterColumn filterColumn = filterTable.FilterColumnList.Find(delegate(FilterColumn fc) { return(filterItemJoin.TargetColumnName == fc.TablesetColumn.Name); }); if (filterColumn == null) { return(new questStatus(String.Format("ERROR: seeking FilterItemJoin {0} FilterColumn not found (FilterTable) [{1}].[{2}]", filterItemJoin.Id, filterItemJoin.TargetSchema, filterItemJoin.TargetEntityName))); } filterItemJoin.ColumnId = filterColumn.TablesetColumn.Id; } else if (filterItemJoin.TargetEntityTypeId == FilterEntityType.View) { // Get the TablesetColumnId for the given join. FilterView filterView = filter.FilterViewList.Find(delegate(FilterView v) { return(filterItemJoin.TargetSchema == v.Schema && filterItemJoin.TargetEntityName == v.Name); }); if (filterView == null) { return(new questStatus(String.Format("ERROR: seeking FilterItemJoin {0} TablesetColumnId not found (FilterView) [{1}].[{2}]", filterItemJoin.Id, filterItemJoin.TargetSchema, filterItemJoin.TargetEntityName))); } // Now get the TablesetColumnId for the given column name FilterColumn filterColumn = filterView.FilterColumnList.Find(delegate(FilterColumn fc) { return(filterItemJoin.TargetColumnName == fc.TablesetColumn.Name); }); if (filterColumn == null) { return(new questStatus(String.Format("ERROR: seeking FilterItemJoin {0} FilterColumn not found (FilterView) [{1}].[{2}]", filterItemJoin.Id, filterItemJoin.TargetSchema, filterItemJoin.TargetEntityName))); } filterItemJoin.ColumnId = filterColumn.TablesetColumn.Id; } return(new questStatus(Severity.Success)); }
public questStatus Update(DbMgrTransaction trans, FilterItemJoin filterItemJoin) { // Initialize questStatus status = null; // Update filterItemJoin status = _dbFilterItemJoinsMgr.Update(trans, filterItemJoin); if (!questStatusDef.IsSuccess(status)) { return(status); } return(new questStatus(Severity.Success)); }
public questStatus Create(DbMgrTransaction trans, FilterItemJoin filterItemJoin, out FilterItemJoinId filterItemJoinId) { // Initialize questStatus status = null; filterItemJoinId = null; // Create filterItemJoin status = _dbFilterItemJoinsMgr.Create(trans, filterItemJoin, out filterItemJoinId); if (!questStatusDef.IsSuccess(status)) { return(status); } return(new questStatus(Severity.Success)); }
public questStatus Read(FilterItemJoinId filterItemJoinId, out FilterItemJoin filterItemJoin) { // Initialize questStatus status = null; filterItemJoin = null; // Read filterItemJoin status = _dbFilterItemJoinsMgr.Read(filterItemJoinId, out filterItemJoin); if (!questStatusDef.IsSuccess(status)) { return(status); } return(new questStatus(Severity.Success)); }
// // Hide this, embarrassing // // Indemenity clause: database and tableset changes independent of filters hath wreaked havoc in places. private questStatus klugieGetFilterItemInfo(FilterItemJoin filterItemJoin, out DatabaseId databaseId, out TablesetId tablesetId) { // Initialize questStatus status = null; databaseId = null; tablesetId = null; FilterItemId filterItemId = new FilterItemId(filterItemJoin.FilterItemId); FilterItem filterItem = null; DbFilterItemsMgr dbFilterItemsMgr = new DbFilterItemsMgr(this.UserSession); status = dbFilterItemsMgr.Read(filterItemId, out filterItem); if (!questStatusDef.IsSuccess(status)) { return(status); } return(klugieGetFilterItemInfo(filterItem, out databaseId, out tablesetId)); }
/*================================================================================================================================== * Public Methods *=================================================================================================================================*/ public questStatus Save(FilterPanelViewModel filterPanelViewModel) { // Initialize questStatus status = null; Quest.Functional.MasterPricing.Filter filter = null; FilterId filterId = null; // Validate if (filterPanelViewModel.Editor.TablesetId < BaseId.VALID_ID) { return(new questStatus(Severity.Error, "Invalid Tableset Id")); } if (filterPanelViewModel.Editor.FilterId < BaseId.VALID_ID) { // For headless agents that want to save all-in-one, not via the Filters panel. filter = new Functional.MasterPricing.Filter(); BufferMgr.TransferBuffer(filterPanelViewModel.Editor, filter); filterId = null; FiltersMgr filtersMgr = new FiltersMgr(this.UserSession); status = filtersMgr.Create(filter, out filterId); if (!questStatusDef.IsSuccess(status)) { return(status); } filterPanelViewModel.Editor.Id = filterId.Id; filterPanelViewModel.Editor.FilterId = filterId.Id; } // Read tableset configuration TablesetId tablesetId = new TablesetId(filterPanelViewModel.Editor.TablesetId); TablesetDataManagement tablesetDataManagement = null; TablesetMgr tablesetMgr = new TablesetMgr(this.UserSession); status = tablesetMgr.ReadTablesetDataManagement(tablesetId, out tablesetDataManagement); if (!questStatusDef.IsSuccess(status)) { return(status); } #region Transfer filter entities // // Transfer filter entities // filter = new Functional.MasterPricing.Filter(); filter.TablesetId = filterPanelViewModel.Editor.TablesetId; filter.Id = filterPanelViewModel.Editor.Id; foreach (BootstrapTreenodeViewModel filterEntity in filterPanelViewModel.Entities) { if (filterEntity.type == "table") { FilterTable filterTable = new FilterTable(); filterTable.FilterId = filterPanelViewModel.Editor.Id; filterTable.Schema = filterEntity.Schema; filterTable.Name = filterEntity.Name; filter.FilterTableList.Add(filterTable); } else if (filterEntity.type == "view") { FilterView filterView = new FilterView(); filterView.FilterId = filterPanelViewModel.Editor.Id; filterView.Schema = filterEntity.Schema; filterView.Name = filterEntity.Name; filter.FilterViewList.Add(filterView); } else if (filterEntity.type == "column") { FilterColumn filterColumn = new FilterColumn(); filterColumn.FilterId = filterPanelViewModel.Editor.Id; filterColumn.Name = filterEntity.Name; filterColumn.TablesetEntityId = filterEntity.ParentId; if (filterEntity.parentType == "table") { TablesetTable parentTablesetTable = tablesetDataManagement.TablesetConfiguration.TablesetTables.Find(delegate(TablesetTable tt) { return(tt.Id == filterEntity.ParentId); }); if (parentTablesetTable == null) { return(new questStatus(Severity.Error, String.Format("ERROR: column filter entity \"{0}\" (Id {1}) table parent Id {2} not found.", filterEntity.text, filterEntity.Id, filterEntity.ParentId))); } filterColumn.FilterEntityTypeId = FilterEntityType.Table; // If column table not in filter entities, add it. BootstrapTreenodeViewModel filterColumnTable = filterPanelViewModel.Entities.Find(delegate(BootstrapTreenodeViewModel n) { return(n.type == "table" && n.Id == filterEntity.ParentId); }); if (filterColumnTable == null) { FilterTable filterTable = filter.FilterTableList.Find(delegate(FilterTable t) { return(filterEntity.ParentId == t.TablesetTable.Id); }); if (filterTable == null) { filterTable = new FilterTable(); filterTable.FilterId = filterPanelViewModel.Editor.Id; filterTable.TablesetTable = parentTablesetTable; filterTable.Schema = parentTablesetTable.Schema; filterTable.Name = parentTablesetTable.Name; filter.FilterTableList.Add(filterTable); } } } else if (filterEntity.parentType == "view") { TablesetView parentTablesetView = tablesetDataManagement.TablesetConfiguration.TablesetViews.Find(delegate(TablesetView tv) { return(tv.Id == filterEntity.ParentId); }); if (parentTablesetView == null) { return(new questStatus(Severity.Error, String.Format("ERROR: column filter entity \"{0}\" (Id {1}) view parent Id {2} not found.", filterEntity.text, filterEntity.Id, filterEntity.ParentId))); } filterColumn.FilterEntityTypeId = FilterEntityType.View; // If column view not in filter entities, add it. BootstrapTreenodeViewModel filterColumnView = filterPanelViewModel.Entities.Find(delegate(BootstrapTreenodeViewModel n) { return(n.type == "view" && n.Id == filterEntity.ParentId); }); if (filterColumnView == null) { FilterView filterView = filter.FilterViewList.Find(delegate(FilterView v) { return(filterEntity.ParentId == v.TablesetView.Id); }); if (filterView == null) { filterView = new FilterView(); filterView.FilterId = filterPanelViewModel.Editor.Id; filterView.TablesetView = parentTablesetView; filterView.Schema = parentTablesetView.Schema; filterView.Name = parentTablesetView.Name; filter.FilterViewList.Add(filterView); } } } else { return(new questStatus(Severity.Error, String.Format("ERROR: column filter entity \"{0}\" (Id {1}) unknown parent parent type: {2}", filterEntity.text, filterEntity.Id, filterEntity.ParentId, (filterEntity.parentType == null ? "null" : filterEntity.parentType)))); } filter.FilterColumnList.Add(filterColumn); } else { return(new questStatus(Severity.Error, String.Format("Invalid filter entity type: {0}", filterEntity.type))); } } #endregion #region Transfer filter items // // Transfer filter items // foreach (FilterItemViewModel filterItemViewModel in filterPanelViewModel.Items) { // Filter Item FilterItem filterItem = new FilterItem(); filterItem.FilterId = filterPanelViewModel.Editor.FilterId; if (filterItemViewModel.Entity.type == "table") { filterItem.FilterEntityTypeId = FilterEntityType.Table; } if (filterItemViewModel.Entity.type == "view") { filterItem.FilterEntityTypeId = FilterEntityType.View; } else if (filterItemViewModel.Entity.type == "column") { filterItem.FilterEntityTypeId = FilterEntityType.Column; } filterItem.TablesetColumnId = filterItemViewModel.Entity.Id; filterItem.Label = filterItemViewModel.Label; filterItem.ParameterName = filterItemViewModel.ParameterName; filterItem.bHidden = filterItemViewModel.bHidden; filterItem.bBulkUpdateValueRequired = filterItemViewModel.bBulkUpdateValueRequired; // Joins foreach (FilterItemJoinViewModel filterItemJoinViewModel in filterItemViewModel.Joins) { FilterItemJoin filterItemJoin = new FilterItemJoin(); filterItemJoin.ColumnId = filterItemJoinViewModel.ColumnId; filterItemJoin.JoinType = filterItemJoinViewModel.JoinType; filterItemJoin.Identifier = filterItemJoinViewModel.Identifier; filterItem.JoinList.Add(filterItemJoin); } // Operations foreach (FilterOperationViewModel filterOperationViewModel in filterItemViewModel.Operations) { FilterOperation filterOperation = new FilterOperation(); filterOperation.FilterOperatorId = filterOperationViewModel.Operator; // Values foreach (FilterValueViewModel filterValueViewModel in filterOperationViewModel.Values) { FilterValue filterValue = new FilterValue(); filterValue.Value = filterValueViewModel.Value; filterOperation.ValueList.Add(filterValue); } filterItem.OperationList.Add(filterOperation); } // Lookup if (filterItemViewModel.Lookup.Id >= BaseId.VALID_ID) { filterItem.LookupId = filterItemViewModel.Lookup.Id; } // TypeList if (filterItemViewModel.TypeList.Id >= BaseId.VALID_ID) { filterItem.TypeListId = filterItemViewModel.TypeList.Id; } filter.FilterItemList.Add(filterItem); } #endregion #region Transfer filter procedures // // Transfer filter procedures // foreach (FilterProcedureViewModel filterProcedureViewModel in filterPanelViewModel.Procedures) { if (filterProcedureViewModel.Id > BaseId.INVALID_ID) { FilterProcedure filterProcedure = new FilterProcedure(); BufferMgr.TransferBuffer(filterProcedureViewModel, filterProcedure); filterProcedure.FilterId = filterPanelViewModel.Editor.FilterId; filter.FilterProcedureList.Add(filterProcedure); } } #endregion #region Save filter // // Save filter // filterId = new FilterId(filterPanelViewModel.Editor.FilterId); FilterMgr filterMgr = new FilterMgr(this.UserSession); status = filterMgr.Save(filterId, filter); if (!questStatusDef.IsSuccess(status)) { if (questStatusDef.IsWarning(status)) { return(status); } return(new questStatus(status.Severity, String.Format("Error saving filter items: {0}", status.Message))); } #endregion #region Return procedure parameters // // Return procedure parameters // // Get filter database Quest.Functional.MasterPricing.Database database = null; filterMgr.GetFilterDatabase(filterId, out database); if (filter.FilterProcedureList.Count > 0) { foreach (FilterProcedureViewModel filterProcedureViewModel in filterPanelViewModel.Procedures) { if ((filterProcedureViewModel.Id == BaseId.INVALID_ID) || (string.IsNullOrEmpty(filterProcedureViewModel.Name))) { continue; } // Get procedure parameters List <Quest.Functional.MasterPricing.FilterProcedureParameter> filterProcedureParameterList = null; status = filterMgr.GetStoredProdecureParameters(database, filterProcedureViewModel.Name, out filterProcedureParameterList); if (!questStatusDef.IsSuccess(status)) { return(status); } foreach (FilterProcedureParameter filterProcedureParameter in filterProcedureParameterList) { FilterProcedureParameterViewModel filterProcedureParameterViewModel = new FilterProcedureParameterViewModel(); BufferMgr.TransferBuffer(filterProcedureParameter, filterProcedureParameterViewModel, true); filterProcedureParameterViewModel.Precision = filterProcedureParameter.Precision[0]; filterProcedureParameterViewModel.Scale = filterProcedureParameter.Scale[0]; filterProcedureViewModel.Parameters.Add(filterProcedureParameterViewModel); } } } #endregion // Return warning if no items in filter. if (filter.FilterItemList.Count == 0) { return(new questStatus(Severity.Warning, "Filter successfully saved, but has no items")); } return(new questStatus(Severity.Success)); }