diff --git a/Neo4j.console/Program.cs b/Neo4j.console/Program.cs index b0341d7..c8bab81 100644 --- a/Neo4j.console/Program.cs +++ b/Neo4j.console/Program.cs @@ -11,12 +11,14 @@ var roleAccessLevels = testData.Item4; var userAccessLevels = testData.Item5; var userRoles = testData.Item6; +var tenants = testData.Item7; var nodeData = new List(); var relationshipData = new List(); nodeData.AddRange(users); nodeData.AddRange(roles); nodeData.AddRange(accessLevels); +nodeData.AddRange(tenants); relationshipData.AddRange(roleAccessLevels); relationshipData.AddRange(userAccessLevels); relationshipData.AddRange(userRoles); diff --git a/Neo4j.console/TestDataReader.cs b/Neo4j.console/TestDataReader.cs index 51f62fc..e96f360 100644 --- a/Neo4j.console/TestDataReader.cs +++ b/Neo4j.console/TestDataReader.cs @@ -18,7 +18,7 @@ public static List ReadCsv(string filePath) } } - public static Tuple, List, List, List, List, List> GetTestData() + public static Tuple, List, List, List, List, List, List> GetTestData() { // File paths string usersFile = "Users.csv"; // Replace with the actual file path @@ -27,6 +27,7 @@ public static Tuple, List, List, List users = ReadCsv(usersFile); @@ -35,8 +36,9 @@ public static Tuple, List, List, List roleAccessLevels = ReadCsv(roleAccessLevelsFile); List userAccessLevels = ReadCsv(userAccessLevelsFile); List userRoles = ReadCsv(userRolesFile); + List tenants = ReadCsv(tenantsFile); - return new (users, roles, accessLevels, roleAccessLevels, userAccessLevels, userRoles); + return new (users, roles, accessLevels, roleAccessLevels, userAccessLevels, userRoles, tenants); } } } diff --git a/Neo4j.console/csv/Tenants.csv b/Neo4j.console/csv/Tenants.csv new file mode 100644 index 0000000..9adf25b --- /dev/null +++ b/Neo4j.console/csv/Tenants.csv @@ -0,0 +1,3 @@ +TenantName,TenantId +TenantOne,1 +TenantTwo,2 \ No newline at end of file diff --git a/Neo4j.console/csv/Users.csv b/Neo4j.console/csv/Users.csv index a90b32c..83b7355 100644 --- a/Neo4j.console/csv/Users.csv +++ b/Neo4j.console/csv/Users.csv @@ -1,11 +1,11 @@ -UserId,UserName -b5030d47-8ac2-4e2e-a3d6-0d8636347b1d,User_0 -6ae321fe-8cbe-41c2-907e-cacae959afe6,User_1 -3cde9f1c-eb67-4bbc-8780-a74c5b9260a8,User_2 -e6a7d49c-26db-4a6b-b0b9-85570448d861,User_3 -458c289d-8562-46f4-8529-77e5e5d4aa47,User_4 -43f3e396-31af-4a58-943b-67283f4a423c,User_5 -78a785ba-9a76-4e3a-9061-263df525dc2c,John Doe -89bfde4a-0e47-48dd-9dcc-e538a63b22b9,User_7 -4163b00e-1556-4ec4-a3d5-2da76c3fbb59,User_8 -0b37ce44-c817-4dca-88cf-581fa58fe63b,User_9 +UserId,UserName,TenantId +b5030d47-8ac2-4e2e-a3d6-0d8636347b1d,User_0,1 +6ae321fe-8cbe-41c2-907e-cacae959afe6,User_1,1 +3cde9f1c-eb67-4bbc-8780-a74c5b9260a8,User_2,1 +e6a7d49c-26db-4a6b-b0b9-85570448d861,User_3,1 +458c289d-8562-46f4-8529-77e5e5d4aa47,User_4,1 +43f3e396-31af-4a58-943b-67283f4a423c,User_5,2 +78a785ba-9a76-4e3a-9061-263df525dc2c,John Doe,2 +89bfde4a-0e47-48dd-9dcc-e538a63b22b9,User_7,2 +4163b00e-1556-4ec4-a3d5-2da76c3fbb59,User_8,2 +0b37ce44-c817-4dca-88cf-581fa58fe63b,User_9,2 diff --git a/Neo4j.library/Classes/Tenant.cs b/Neo4j.library/Classes/Tenant.cs new file mode 100644 index 0000000..e32f359 --- /dev/null +++ b/Neo4j.library/Classes/Tenant.cs @@ -0,0 +1,32 @@ +using neo4j.lib.Interfaces; +using Neo4j.Driver; +using Neo4j.Driver.Mapping; +using System; + +namespace neo4j.lib.Classes +{ + public class Tenant : IImportable + { + public Int64 TenantId { get; set; } + public string TenantName { get; set; } + + public string ToCypherQuery() + { + return + "MERGE (u:Tenant {TenantId: $tenantId}) " + + "ON CREATE " + + "SET u.TenantName = $tenantName " + + "ON MATCH " + + "SET u.TenantName = $tenantName "; + } + public object GetParameters() + { + return new + { + tenantId = TenantId, + tenantName = TenantName + }; + } + } + +} diff --git a/Neo4j.library/Classes/User.cs b/Neo4j.library/Classes/User.cs index 1939ed7..7666329 100644 --- a/Neo4j.library/Classes/User.cs +++ b/Neo4j.library/Classes/User.cs @@ -9,6 +9,7 @@ public class User : IImportable { public Guid UserId { get; set; } public string UserName { get; set; } + public Int64 TenantId { get; set; } public string ToCypherQuery() { @@ -16,15 +17,18 @@ public string ToCypherQuery() "MERGE (u:User {UserId: $userId}) " + "ON CREATE " + "SET u.UserName = $userName " + + ", u.TenantId = $tenantId " + "ON MATCH " + - "SET u.UserName = $userName "; + "SET u.UserName = $userName " + + ", u.TenantId = $tenantId "; } public object GetParameters() { return new { userId = UserId.ToString(), - userName = UserName + userName = UserName, + tenantId = TenantId, }; } //public User ResultToObject(IRecord result)