From 2fdc6f938a4c5c6196339247b51a6c9efeb2c7a2 Mon Sep 17 00:00:00 2001
From: Heinrichs <Heinrichs@itc.rwth-aachen.de>
Date: Wed, 31 Aug 2022 10:29:18 +0200
Subject: [PATCH] Add resource deleted flag

---
 .../Implementations/ProjectStructuralData.cs      | 12 ++++++++++++
 .../Implementations/ResourceStructuralData.cs     | 15 +++++++++++++++
 2 files changed, 27 insertions(+)

diff --git a/src/SQL2Linked/Implementations/ProjectStructuralData.cs b/src/SQL2Linked/Implementations/ProjectStructuralData.cs
index c9c8fe1..b3f63d4 100644
--- a/src/SQL2Linked/Implementations/ProjectStructuralData.cs
+++ b/src/SQL2Linked/Implementations/ProjectStructuralData.cs
@@ -1,5 +1,6 @@
 using Coscine.Database.DataModel;
 using Coscine.Database.Models;
+using Coscine.Database.Util;
 using VDS.RDF;
 
 namespace SQL2Linked.Implementations
@@ -17,6 +18,17 @@ namespace SQL2Linked.Implementations
         private ProjectRoleModel ProjectRoleModel = new ProjectRoleModel();
         private ProjectResourceModel ProjectResourceModel = new ProjectResourceModel();
 
+        // Override to also receive deleted projects
+        public override IEnumerable<Project> GetAll()
+        {
+            return DatabaseConnection.ConnectToDatabase((db) =>
+            {
+                return
+                    (from tableEntry in Model.GetITableFromDatabase(db)
+                     select tableEntry).ToList();
+            });
+        }
+
         public override IEnumerable<IGraph> ConvertToLinkedData(IEnumerable<Project> entries)
         {
             IEnumerable<Visibility> visibilities = VisibilityModel.GetAll();
diff --git a/src/SQL2Linked/Implementations/ResourceStructuralData.cs b/src/SQL2Linked/Implementations/ResourceStructuralData.cs
index 76408b6..c603d16 100644
--- a/src/SQL2Linked/Implementations/ResourceStructuralData.cs
+++ b/src/SQL2Linked/Implementations/ResourceStructuralData.cs
@@ -1,5 +1,6 @@
 using Coscine.Database.DataModel;
 using Coscine.Database.Models;
+using Coscine.Database.Util;
 using VDS.RDF;
 using VDS.RDF.Query;
 
@@ -19,6 +20,17 @@ namespace SQL2Linked.Implementations
         private ProjectResourceModel ProjectResourceModel = new ProjectResourceModel();
         private LicenseModel LicenseModel = new LicenseModel();
 
+        // Override to also receive deleted resources
+        public override IEnumerable<Resource> GetAll()
+        {
+            return DatabaseConnection.ConnectToDatabase((db) =>
+            {
+                return
+                    (from tableEntry in Model.GetITableFromDatabase(db)
+                     select tableEntry).ToList();
+            });
+        }
+
         public override IEnumerable<IGraph> ConvertToLinkedData(IEnumerable<Resource> entries)
         {
             IEnumerable<Visibility> visibilities = VisibilityModel.GetAll();
@@ -113,6 +125,9 @@ namespace SQL2Linked.Implementations
                 AssertToGraphUriNode(graph, resourceGraphName, foaf + "homepage", resourceGraphName);
                 Console.WriteLine($"For resource '{entry.DisplayName}' will migrate triple '{resourceGraphName} {foaf}homepage {resourceGraphName}'. ");
 
+                AssertToGraphLiteralNode(graph, resourceGraphName, cosc + "terms/resource#deleted", entry.Deleted.ToString().ToLower(), new Uri("http://www.w3.org/2001/XMLSchema#boolean"));
+                Console.WriteLine($"For project '{entry.DisplayName}' will migrate triple '{resourceGraphName} {cosc}terms/resource#deleted {entry.Deleted}'. ");
+
                 SparqlParameterizedString cmdString = new SparqlParameterizedString
                 {
                     CommandText = "SELECT DISTINCT ?g " +
-- 
GitLab