From 873635b416ecb7c5fba424687136bfdbffada38e Mon Sep 17 00:00:00 2001 From: James Friel Date: Fri, 7 Mar 2025 11:04:48 +0000 Subject: [PATCH 1/4] interim --- .../ExecuteCommandChangeExtractability.cs | 16 ++++++++++++-- .../CommandExecution/BasicActivateItems.cs | 22 ++++++++++--------- .../DataExport/Data/ExtractableDataSet.cs | 2 +- 3 files changed, 27 insertions(+), 13 deletions(-) diff --git a/Rdmp.Core/CommandExecution/AtomicCommands/ExecuteCommandChangeExtractability.cs b/Rdmp.Core/CommandExecution/AtomicCommands/ExecuteCommandChangeExtractability.cs index f27befd4a3..99b01d6218 100644 --- a/Rdmp.Core/CommandExecution/AtomicCommands/ExecuteCommandChangeExtractability.cs +++ b/Rdmp.Core/CommandExecution/AtomicCommands/ExecuteCommandChangeExtractability.cs @@ -65,7 +65,17 @@ public override void Execute() } else { - new ExtractableDataSet(BasicActivator.RepositoryLocator.DataExportRepository, _catalogue); + var extractabilityRecord = + ((DataExportChildProvider)BasicActivator.CoreChildProvider).ExtractableDataSets.SingleOrDefault(ds => + ds.Catalogue_ID == _catalogue.ID); + if (extractabilityRecord != null) { + extractabilityRecord.DisableExtraction = false; + extractabilityRecord.SaveToDatabase(); + } + else + { + new ExtractableDataSet(BasicActivator.RepositoryLocator.DataExportRepository, _catalogue); + } Publish(_catalogue); } } @@ -80,7 +90,9 @@ public override void Execute() } else { - extractabilityRecord.DeleteInDatabase(); + extractabilityRecord.DisableExtraction = true; + extractabilityRecord.SaveToDatabase(); + //extractabilityRecord.DeleteInDatabase(); Publish(_catalogue); } } diff --git a/Rdmp.Core/CommandExecution/BasicActivateItems.cs b/Rdmp.Core/CommandExecution/BasicActivateItems.cs index 736008d112..75128f8ba7 100644 --- a/Rdmp.Core/CommandExecution/BasicActivateItems.cs +++ b/Rdmp.Core/CommandExecution/BasicActivateItems.cs @@ -380,19 +380,21 @@ protected virtual bool InteractiveDelete(IDeleteable deletable) { case Catalogue c: { - if (c.GetExtractabilityStatus(RepositoryLocator.DataExportRepository).IsExtractable) + var extractableDataSets = RepositoryLocator.DataExportRepository.GetAllObjectsWhere("Catalogue_ID", c.ID); + if (extractableDataSets.Any()) { - if (YesNo( - "Catalogue must first be made non extractable before it can be deleted, mark non extractable?", - "Make Non Extractable")) + foreach(var ds in extractableDataSets) { - var cmd = new ExecuteCommandChangeExtractability(this, c); - cmd.Execute(); - } - else - { - return false; + var selectedDatasets = RepositoryLocator.DataExportRepository.GetAllObjectsWhere("ExtractableDataSet_ID", ds.ID); + if (selectedDatasets.Any()) + { + this.Show("Catalogue Is Used in a number of projects. Remove this catalogue from all projects to allow deletion"); + return false; + } } + //not used anywhere, we can dlete it + foreach (var ds in extractableDataSets) ds.DeleteInDatabase(); + } break; diff --git a/Rdmp.Core/DataExport/Data/ExtractableDataSet.cs b/Rdmp.Core/DataExport/Data/ExtractableDataSet.cs index d3700bd137..2a5cfb2a77 100644 --- a/Rdmp.Core/DataExport/Data/ExtractableDataSet.cs +++ b/Rdmp.Core/DataExport/Data/ExtractableDataSet.cs @@ -153,7 +153,7 @@ public override void DeleteInDatabase() /// Returns an object indicating whether the dataset is project specific or not /// /// - public CatalogueExtractabilityStatus GetCatalogueExtractabilityStatus() => new(true, Project_ID != null); + public CatalogueExtractabilityStatus GetCatalogueExtractabilityStatus() => new(!DisableExtraction, Project_ID != null); private Lazy _catalogue; From 32a23175f72284c969b4da9c1a6ad264b177a843 Mon Sep 17 00:00:00 2001 From: James Friel Date: Fri, 7 Mar 2025 12:49:07 +0000 Subject: [PATCH 2/4] remove cold sotrage --- .../CommandExecution/AtomicCommandFactory.cs | 10 +++---- ...cuteCommandMakeCatalogueProjectSpecific.cs | 4 +-- ...MakeProjectSpecificCatalogueNormalAgain.cs | 10 +++---- .../CatalogueCollectionFilterUI.Designer.cs | 28 ------------------- .../CatalogueCollectionFilterUI.cs | 16 ----------- .../MainFormUITabs/CatalogueUI.Designer.cs | 13 --------- Rdmp.UI/MainFormUITabs/CatalogueUI.cs | 1 - .../CatalogueToDatasetLinkagePieChartUI.cs | 4 --- Rdmp.UI/PieCharts/GoodBadCataloguePieChart.cs | 4 --- Rdmp.UI/SimpleDialogs/NewfindUI.cs | 2 -- Rdmp.UI/SimpleDialogs/SelectDialog.cs | 2 -- 11 files changed, 12 insertions(+), 82 deletions(-) diff --git a/Rdmp.Core/CommandExecution/AtomicCommandFactory.cs b/Rdmp.Core/CommandExecution/AtomicCommandFactory.cs index 38d67ded93..8e78318ee2 100644 --- a/Rdmp.Core/CommandExecution/AtomicCommandFactory.cs +++ b/Rdmp.Core/CommandExecution/AtomicCommandFactory.cs @@ -129,11 +129,11 @@ public IEnumerable CreateCommands(object o) }; if (!isApiCall) { - yield return new ExecuteCommandChangeExtractability(_activator, c) - { - Weight = -99.0010f, - SuggestedCategory = Extraction - }; + //yield return new ExecuteCommandChangeExtractability(_activator, c) + //{ + // Weight = -99.0010f, + // SuggestedCategory = Extraction + //}; yield return c.IsProjectSpecific(_activator.RepositoryLocator.DataExportRepository) ? new ExecuteCommandMakeProjectSpecificCatalogueNormalAgain(_activator, c) diff --git a/Rdmp.Core/CommandExecution/AtomicCommands/ExecuteCommandMakeCatalogueProjectSpecific.cs b/Rdmp.Core/CommandExecution/AtomicCommands/ExecuteCommandMakeCatalogueProjectSpecific.cs index c9e0554b96..16ecc2e8c4 100644 --- a/Rdmp.Core/CommandExecution/AtomicCommands/ExecuteCommandMakeCatalogueProjectSpecific.cs +++ b/Rdmp.Core/CommandExecution/AtomicCommands/ExecuteCommandMakeCatalogueProjectSpecific.cs @@ -105,8 +105,8 @@ private void SetCatalogue(ICatalogue catalogue) if (status.IsProjectSpecific) SetImpossible("Catalogue is already Project Specific"); - if (!status.IsExtractable) - SetImpossible("Catalogue must first be made Extractable"); + //if (!status.IsExtractable) + // SetImpossible("Catalogue must first be made Extractable"); var ei = _catalogue.GetAllExtractionInformation(ExtractionCategory.Any); if (!ei.Any()) diff --git a/Rdmp.Core/CommandExecution/AtomicCommands/ExecuteCommandMakeProjectSpecificCatalogueNormalAgain.cs b/Rdmp.Core/CommandExecution/AtomicCommands/ExecuteCommandMakeProjectSpecificCatalogueNormalAgain.cs index 8a724eef0c..ea76c5b7ec 100644 --- a/Rdmp.Core/CommandExecution/AtomicCommands/ExecuteCommandMakeProjectSpecificCatalogueNormalAgain.cs +++ b/Rdmp.Core/CommandExecution/AtomicCommands/ExecuteCommandMakeProjectSpecificCatalogueNormalAgain.cs @@ -34,11 +34,11 @@ public ExecuteCommandMakeProjectSpecificCatalogueNormalAgain(IBasicActivateItems _extractableDataSet = dataExportRepository.GetAllObjectsWithParent(catalogue) .SingleOrDefault(); - if (_extractableDataSet == null) - { - SetImpossible("Catalogue is not extractable"); - return; - } + //if (_extractableDataSet == null) + //{ + // SetImpossible("Catalogue is not extractable"); + // return; + //} if (_extractableDataSet.Project_ID == null) { diff --git a/Rdmp.UI/Collections/CatalogueCollectionFilterUI.Designer.cs b/Rdmp.UI/Collections/CatalogueCollectionFilterUI.Designer.cs index 0abec794e8..7300d0879c 100644 --- a/Rdmp.UI/Collections/CatalogueCollectionFilterUI.Designer.cs +++ b/Rdmp.UI/Collections/CatalogueCollectionFilterUI.Designer.cs @@ -28,26 +28,13 @@ protected override void Dispose(bool disposing) /// private void InitializeComponent() { - this.cbShowColdStorage = new System.Windows.Forms.CheckBox(); this.cbShowDeprecated = new System.Windows.Forms.CheckBox(); this.cbShowInternal = new System.Windows.Forms.CheckBox(); this.cbProjectSpecific = new System.Windows.Forms.CheckBox(); - this.cbShowNonExtractable = new System.Windows.Forms.CheckBox(); this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel(); this.flowLayoutPanel1.SuspendLayout(); this.SuspendLayout(); // - // cbShowColdStorage - // - this.cbShowColdStorage.AutoSize = true; - this.cbShowColdStorage.Location = new System.Drawing.Point(3, 3); - this.cbShowColdStorage.Name = "cbShowColdStorage"; - this.cbShowColdStorage.Size = new System.Drawing.Size(87, 17); - this.cbShowColdStorage.TabIndex = 5; - this.cbShowColdStorage.Text = "Cold Storage"; - this.cbShowColdStorage.UseVisualStyleBackColor = true; - this.cbShowColdStorage.CheckedChanged += new System.EventHandler(this.OnCheckboxChanged); - // // cbShowDeprecated // this.cbShowDeprecated.AutoSize = true; @@ -81,24 +68,11 @@ private void InitializeComponent() this.cbProjectSpecific.UseVisualStyleBackColor = true; this.cbProjectSpecific.CheckedChanged += new System.EventHandler(this.OnCheckboxChanged); // - // cbShowNonExtractable - // - this.cbShowNonExtractable.AutoSize = true; - this.cbShowNonExtractable.Location = new System.Drawing.Point(109, 26); - this.cbShowNonExtractable.Name = "cbShowNonExtractable"; - this.cbShowNonExtractable.Size = new System.Drawing.Size(102, 17); - this.cbShowNonExtractable.TabIndex = 9; - this.cbShowNonExtractable.Text = "Non Extractable"; - this.cbShowNonExtractable.UseVisualStyleBackColor = true; - this.cbShowNonExtractable.CheckedChanged += new System.EventHandler(this.OnCheckboxChanged); - // // flowLayoutPanel1 // - this.flowLayoutPanel1.Controls.Add(this.cbShowColdStorage); this.flowLayoutPanel1.Controls.Add(this.cbShowInternal); this.flowLayoutPanel1.Controls.Add(this.cbShowDeprecated); this.flowLayoutPanel1.Controls.Add(this.cbProjectSpecific); - this.flowLayoutPanel1.Controls.Add(this.cbShowNonExtractable); this.flowLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; this.flowLayoutPanel1.Location = new System.Drawing.Point(0, 0); this.flowLayoutPanel1.Name = "flowLayoutPanel1"; @@ -118,11 +92,9 @@ private void InitializeComponent() #endregion - private System.Windows.Forms.CheckBox cbShowColdStorage; private System.Windows.Forms.CheckBox cbShowDeprecated; private System.Windows.Forms.CheckBox cbShowInternal; private System.Windows.Forms.CheckBox cbProjectSpecific; - private System.Windows.Forms.CheckBox cbShowNonExtractable; private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1; } } diff --git a/Rdmp.UI/Collections/CatalogueCollectionFilterUI.cs b/Rdmp.UI/Collections/CatalogueCollectionFilterUI.cs index 5464cf7c63..167e8f5b83 100644 --- a/Rdmp.UI/Collections/CatalogueCollectionFilterUI.cs +++ b/Rdmp.UI/Collections/CatalogueCollectionFilterUI.cs @@ -21,9 +21,7 @@ public CatalogueCollectionFilterUI() cbShowInternal.Checked = UserSettings.ShowInternalCatalogues; cbShowDeprecated.Checked = UserSettings.ShowDeprecatedCatalogues; - cbShowColdStorage.Checked = UserSettings.ShowColdStorageCatalogues; cbProjectSpecific.Checked = UserSettings.ShowProjectSpecificCatalogues; - cbShowNonExtractable.Checked = UserSettings.ShowNonExtractableCatalogues; _loading = false; } @@ -37,9 +35,7 @@ private void OnCheckboxChanged(object sender, EventArgs e) UserSettings.ShowInternalCatalogues = cbShowInternal.Checked; UserSettings.ShowDeprecatedCatalogues = cbShowDeprecated.Checked; - UserSettings.ShowColdStorageCatalogues = cbShowColdStorage.Checked; UserSettings.ShowProjectSpecificCatalogues = cbProjectSpecific.Checked; - UserSettings.ShowNonExtractableCatalogues = cbShowNonExtractable.Checked; FiltersChanged?.Invoke(this, EventArgs.Empty); } @@ -49,15 +45,9 @@ public void EnsureVisible(Catalogue c) if (c.IsColdStorageDataset || c.IsDeprecated || c.IsInternalDataset) { //trouble is our flags might be hiding it so make sure it is visible - cbShowColdStorage.Checked = cbShowColdStorage.Checked || c.IsColdStorageDataset; cbShowDeprecated.Checked = cbShowDeprecated.Checked || c.IsDeprecated; cbShowInternal.Checked = cbShowInternal.Checked || c.IsInternalDataset; } - - var isExtractable = c.GetExtractabilityStatus(null); - - cbShowNonExtractable.Checked = cbShowNonExtractable.Checked || isExtractable == null || - isExtractable.IsExtractable == false; } /// @@ -72,13 +62,7 @@ public void CheckForChanges() if (cbShowDeprecated.Checked != UserSettings.ShowDeprecatedCatalogues) cbShowDeprecated.Checked = UserSettings.ShowDeprecatedCatalogues; - if (cbShowColdStorage.Checked != UserSettings.ShowColdStorageCatalogues) - cbShowColdStorage.Checked = UserSettings.ShowColdStorageCatalogues; - if (cbProjectSpecific.Checked != UserSettings.ShowProjectSpecificCatalogues) cbProjectSpecific.Checked = UserSettings.ShowProjectSpecificCatalogues; - - if (cbShowNonExtractable.Checked != UserSettings.ShowNonExtractableCatalogues) - cbShowNonExtractable.Checked = UserSettings.ShowNonExtractableCatalogues; } } \ No newline at end of file diff --git a/Rdmp.UI/MainFormUITabs/CatalogueUI.Designer.cs b/Rdmp.UI/MainFormUITabs/CatalogueUI.Designer.cs index 9ce5b6b790..62abb71b24 100644 --- a/Rdmp.UI/MainFormUITabs/CatalogueUI.Designer.cs +++ b/Rdmp.UI/MainFormUITabs/CatalogueUI.Designer.cs @@ -33,7 +33,6 @@ protected override void Dispose(bool disposing) private void InitializeComponent() { splitContainer1 = new SplitContainer(); - cbColdStorage = new CheckBox(); cbInternal = new CheckBox(); cbDeprecated = new CheckBox(); editableFolder = new SimpleControls.EditableLabelUI(); @@ -177,7 +176,6 @@ private void InitializeComponent() // // splitContainer1.Panel1 // - splitContainer1.Panel1.Controls.Add(cbColdStorage); splitContainer1.Panel1.Controls.Add(cbInternal); splitContainer1.Panel1.Controls.Add(cbDeprecated); splitContainer1.Panel1.Controls.Add(editableFolder); @@ -191,16 +189,6 @@ private void InitializeComponent() splitContainer1.SplitterDistance = 158; splitContainer1.TabIndex = 0; // - // cbColdStorage - // - cbColdStorage.AutoSize = true; - cbColdStorage.Location = new System.Drawing.Point(695, 75); - cbColdStorage.Name = "cbColdStorage"; - cbColdStorage.Size = new System.Drawing.Size(94, 19); - cbColdStorage.TabIndex = 5; - cbColdStorage.Text = "Cold Storage"; - cbColdStorage.UseVisualStyleBackColor = true; - // // cbInternal // cbInternal.AutoSize = true; @@ -1177,7 +1165,6 @@ private void InitializeComponent() private TicketingControlUI ticketingControl1; private SimpleControls.EditableLabelUI editableFolder; private SimpleControls.EditableLabelUI editableCatalogueName; - private CheckBox cbColdStorage; private CheckBox cbInternal; private CheckBox cbDeprecated; private TabControl tabControl1; diff --git a/Rdmp.UI/MainFormUITabs/CatalogueUI.cs b/Rdmp.UI/MainFormUITabs/CatalogueUI.cs index 2138f5f8dd..a5a2b4139d 100644 --- a/Rdmp.UI/MainFormUITabs/CatalogueUI.cs +++ b/Rdmp.UI/MainFormUITabs/CatalogueUI.cs @@ -123,7 +123,6 @@ public override void SetDatabaseObject(IActivateItems activator, Catalogue datab protected override void SetBindings(BinderWithErrorProviderFactory rules, Catalogue databaseObject) { base.SetBindings(rules, databaseObject); - Bind(cbColdStorage, "Checked", "IsColdStorageDataset", c => c.IsColdStorageDataset); Bind(cbDeprecated, "Checked", "IsDeprecated", c => c.IsDeprecated); Bind(cbInternal, "Checked", "IsInternalDataset", c => c.IsInternalDataset); Bind(editableCatalogueName, "TextValue", "Name", c => c.Name); diff --git a/Rdmp.UI/PieCharts/CatalogueToDatasetLinkagePieChartUI.cs b/Rdmp.UI/PieCharts/CatalogueToDatasetLinkagePieChartUI.cs index e08d7786ae..726fb5d500 100644 --- a/Rdmp.UI/PieCharts/CatalogueToDatasetLinkagePieChartUI.cs +++ b/Rdmp.UI/PieCharts/CatalogueToDatasetLinkagePieChartUI.cs @@ -68,13 +68,9 @@ private void SetupFlags() if (!_firstTime) return; - AddFlag("Non Extractable Catalogues", c => c.IncludeNonExtractableCatalogues, - (c, r) => c.IncludeNonExtractableCatalogues = r); AddFlag("Deprecated Catalogues", c => c.IncludeDeprecatedCatalogues, (c, r) => c.IncludeDeprecatedCatalogues = r); AddFlag("Internal Catalogues", c => c.IncludeInternalCatalogues, (c, r) => c.IncludeInternalCatalogues = r); - AddFlag("Cold Storage Catalogues", c => c.IncludeColdStorageCatalogues, - (c, r) => c.IncludeColdStorageCatalogues = r); AddFlag("Project Specific Catalogues", c => c.IncludeProjectSpecificCatalogues, (c, r) => c.IncludeProjectSpecificCatalogues = r); diff --git a/Rdmp.UI/PieCharts/GoodBadCataloguePieChart.cs b/Rdmp.UI/PieCharts/GoodBadCataloguePieChart.cs index 0b126d190f..d10457fa27 100644 --- a/Rdmp.UI/PieCharts/GoodBadCataloguePieChart.cs +++ b/Rdmp.UI/PieCharts/GoodBadCataloguePieChart.cs @@ -68,13 +68,9 @@ private void SetupFlags() if (!firstTime) return; - AddFlag("Non Extractable Catalogues", c => c.IncludeNonExtractableCatalogues, - (c, r) => c.IncludeNonExtractableCatalogues = r); AddFlag("Deprecated Catalogues", c => c.IncludeDeprecatedCatalogues, (c, r) => c.IncludeDeprecatedCatalogues = r); AddFlag("Internal Catalogues", c => c.IncludeInternalCatalogues, (c, r) => c.IncludeInternalCatalogues = r); - AddFlag("Cold Storage Catalogues", c => c.IncludeColdStorageCatalogues, - (c, r) => c.IncludeColdStorageCatalogues = r); AddFlag("Project Specific Catalogues", c => c.IncludeProjectSpecificCatalogues, (c, r) => c.IncludeProjectSpecificCatalogues = r); diff --git a/Rdmp.UI/SimpleDialogs/NewfindUI.cs b/Rdmp.UI/SimpleDialogs/NewfindUI.cs index 8b49fba779..2763bdda99 100644 --- a/Rdmp.UI/SimpleDialogs/NewfindUI.cs +++ b/Rdmp.UI/SimpleDialogs/NewfindUI.cs @@ -369,8 +369,6 @@ private void BuildToolStripForDatabaseObjects(RDMPCollection focusedCollection) v => UserSettings.ShowInternalCatalogues = v, "I", "Include Internal"); AddUserSettingCheckbox(() => UserSettings.ShowDeprecatedCatalogues, v => UserSettings.ShowDeprecatedCatalogues = v, "D", "Include Deprecated"); - AddUserSettingCheckbox(() => UserSettings.ShowColdStorageCatalogues, - v => UserSettings.ShowColdStorageCatalogues = v, "C", "Include Cold Storage"); AddUserSettingCheckbox(() => UserSettings.ShowProjectSpecificCatalogues, v => UserSettings.ShowProjectSpecificCatalogues = v, "P", "Include Project Specific"); AddUserSettingCheckbox(() => UserSettings.ShowNonExtractableCatalogues, diff --git a/Rdmp.UI/SimpleDialogs/SelectDialog.cs b/Rdmp.UI/SimpleDialogs/SelectDialog.cs index 6d1fb0c3b2..e614983139 100644 --- a/Rdmp.UI/SimpleDialogs/SelectDialog.cs +++ b/Rdmp.UI/SimpleDialogs/SelectDialog.cs @@ -433,8 +433,6 @@ private void BuildToolStripForDatabaseObjects(RDMPCollection focusedCollection) v => UserSettings.ShowInternalCatalogues = v, "I", "Include Internal"); AddUserSettingCheckbox(() => UserSettings.ShowDeprecatedCatalogues, v => UserSettings.ShowDeprecatedCatalogues = v, "D", "Include Deprecated"); - AddUserSettingCheckbox(() => UserSettings.ShowColdStorageCatalogues, - v => UserSettings.ShowColdStorageCatalogues = v, "C", "Include Cold Storage"); AddUserSettingCheckbox(() => UserSettings.ShowProjectSpecificCatalogues, v => UserSettings.ShowProjectSpecificCatalogues = v, "P", "Include Project Specific"); AddUserSettingCheckbox(() => UserSettings.ShowNonExtractableCatalogues, From 220fc9f2bb10985b4bde53a2e75b626a81395dd2 Mon Sep 17 00:00:00 2001 From: James Friel Date: Fri, 7 Mar 2025 14:01:38 +0000 Subject: [PATCH 3/4] update deps --- Directory.Packages.props | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 7e5f44da47..17e090dee0 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -21,7 +21,7 @@ - + @@ -45,4 +45,4 @@ - + \ No newline at end of file From 5cb29b423f456d5f9a69b12247bda7fa6ed2258a Mon Sep 17 00:00:00 2001 From: James Friel Date: Fri, 7 Mar 2025 15:16:29 +0000 Subject: [PATCH 4/4] add changes needed --- .../up/091_UpdateCatalogueStatuses.sql | 7 +++++++ Rdmp.Core/Providers/DataExportChildProvider.cs | 8 ++++---- Rdmp.Core/Rdmp.Core.csproj | 1 + Rdmp.Core/Repositories/DataExportRepository.cs | 10 +++++++++- Rdmp.UI/Collections/CatalogueCollectionFilterUI.cs | 1 - .../Providers/Filtering/CatalogueCollectionFilter.cs | 2 +- 6 files changed, 22 insertions(+), 7 deletions(-) create mode 100644 Rdmp.Core/Databases/CatalogueDatabase/up/091_UpdateCatalogueStatuses.sql diff --git a/Rdmp.Core/Databases/CatalogueDatabase/up/091_UpdateCatalogueStatuses.sql b/Rdmp.Core/Databases/CatalogueDatabase/up/091_UpdateCatalogueStatuses.sql new file mode 100644 index 0000000000..7f276d2ec8 --- /dev/null +++ b/Rdmp.Core/Databases/CatalogueDatabase/up/091_UpdateCatalogueStatuses.sql @@ -0,0 +1,7 @@ +--Version: 8.4.3 +--Description: Add new metadata fields for catalogues +--update Catalogue +--set IsInternalDataset=1 +--FROM RDMP_Catalogue.dbo.Catalogue as Catalogue +--left join RDMP_DataExport.dbo.ExtractableDataSet as eds on Catalogue.ID = eds.Catalogue_ID +--where eds.ID is NULL \ No newline at end of file diff --git a/Rdmp.Core/Providers/DataExportChildProvider.cs b/Rdmp.Core/Providers/DataExportChildProvider.cs index df0266f273..65dd7234e4 100644 --- a/Rdmp.Core/Providers/DataExportChildProvider.cs +++ b/Rdmp.Core/Providers/DataExportChildProvider.cs @@ -184,10 +184,10 @@ public DataExportChildProvider(IRDMPPlatformRepositoryServiceLocator repositoryL var cataToEds = new Dictionary(ExtractableDataSets.ToDictionary(k => k.Catalogue_ID)); //inject extractability into Catalogues - foreach (var catalogue in AllCatalogues) - catalogue.InjectKnown(cataToEds.TryGetValue(catalogue.ID, out var result) - ? result.GetCatalogueExtractabilityStatus() - : new CatalogueExtractabilityStatus(false, false)); + foreach (var catalogue in AllCatalogues) catalogue.GetExtractabilityStatus(repositoryLocator.DataExportRepository); + //catalogue.InjectKnown(cataToEds.TryGetValue(catalogue.ID, out var result) + // ? result.GetCatalogueExtractabilityStatus() + // : new CatalogueExtractabilityStatus(false, false)); ReportProgress("Catalogue extractability injection"); diff --git a/Rdmp.Core/Rdmp.Core.csproj b/Rdmp.Core/Rdmp.Core.csproj index e77943c6f5..d9a6d48eca 100644 --- a/Rdmp.Core/Rdmp.Core.csproj +++ b/Rdmp.Core/Rdmp.Core.csproj @@ -256,6 +256,7 @@ + diff --git a/Rdmp.Core/Repositories/DataExportRepository.cs b/Rdmp.Core/Repositories/DataExportRepository.cs index 6cb60d593b..40051c320c 100644 --- a/Rdmp.Core/Repositories/DataExportRepository.cs +++ b/Rdmp.Core/Repositories/DataExportRepository.cs @@ -98,7 +98,15 @@ protected override IMapsDirectlyToDatabaseTable ConstructEntity(Type t, DbDataRe public CatalogueExtractabilityStatus GetExtractabilityStatus(ICatalogue c) { var eds = GetAllObjectsWithParent(c).SingleOrDefault(); - return eds == null ? new CatalogueExtractabilityStatus(false, false) : eds.GetCatalogueExtractabilityStatus(); + if(eds is null) + { + //if there is not EDS for this catalogue, it must have bee non extractable + eds = new ExtractableDataSet(this, c, false); + eds.SaveToDatabase(); + //todo need to publish this eds + + } + return eds.GetCatalogueExtractabilityStatus(); } public ISelectedDataSets[] GetSelectedDatasetsWithNoExtractionIdentifiers() => diff --git a/Rdmp.UI/Collections/CatalogueCollectionFilterUI.cs b/Rdmp.UI/Collections/CatalogueCollectionFilterUI.cs index 167e8f5b83..895fbef38a 100644 --- a/Rdmp.UI/Collections/CatalogueCollectionFilterUI.cs +++ b/Rdmp.UI/Collections/CatalogueCollectionFilterUI.cs @@ -36,7 +36,6 @@ private void OnCheckboxChanged(object sender, EventArgs e) UserSettings.ShowInternalCatalogues = cbShowInternal.Checked; UserSettings.ShowDeprecatedCatalogues = cbShowDeprecated.Checked; UserSettings.ShowProjectSpecificCatalogues = cbProjectSpecific.Checked; - FiltersChanged?.Invoke(this, EventArgs.Empty); } diff --git a/Rdmp.UI/Collections/Providers/Filtering/CatalogueCollectionFilter.cs b/Rdmp.UI/Collections/Providers/Filtering/CatalogueCollectionFilter.cs index d1e6804a7d..5cba8e6112 100644 --- a/Rdmp.UI/Collections/Providers/Filtering/CatalogueCollectionFilter.cs +++ b/Rdmp.UI/Collections/Providers/Filtering/CatalogueCollectionFilter.cs @@ -31,7 +31,7 @@ public CatalogueCollectionFilter(ICoreChildProvider childProvider) _isDeprecated = UserSettings.ShowDeprecatedCatalogues; _isColdStorage = UserSettings.ShowColdStorageCatalogues; _isProjectSpecific = UserSettings.ShowProjectSpecificCatalogues; - _isNonExtractable = UserSettings.ShowNonExtractableCatalogues; + _isNonExtractable = true; } public bool Filter(object modelObject) => SearchablesMatchScorer.Filter(modelObject,