Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions Neo4j.console/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,14 @@
var roleAccessLevels = testData.Item4;
var userAccessLevels = testData.Item5;
var userRoles = testData.Item6;
var tenants = testData.Item7;

var nodeData = new List<IImportable>();
var relationshipData = new List<IImportable>();
nodeData.AddRange(users);
nodeData.AddRange(roles);
nodeData.AddRange(accessLevels);
nodeData.AddRange(tenants);
relationshipData.AddRange(roleAccessLevels);
relationshipData.AddRange(userAccessLevels);
relationshipData.AddRange(userRoles);
Expand Down
6 changes: 4 additions & 2 deletions Neo4j.console/TestDataReader.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public static List<T> ReadCsv<T>(string filePath)
}
}

public static Tuple<List<User>, List<Role>, List<AccessLevel>, List<RoleAccessLevel>, List<UserAccessLevel>, List<UserRole>> GetTestData()
public static Tuple<List<User>, List<Role>, List<AccessLevel>, List<RoleAccessLevel>, List<UserAccessLevel>, List<UserRole>, List<Tenant>> GetTestData()
{
// File paths
string usersFile = "Users.csv"; // Replace with the actual file path
Expand All @@ -27,6 +27,7 @@ public static Tuple<List<User>, List<Role>, List<AccessLevel>, List<RoleAccessLe
string roleAccessLevelsFile = "RoleAccessLevels.csv";
string userAccessLevelsFile = "UserAccessLevels.csv";
string userRolesFile = "UserRoles.csv";
string tenantsFile = "Tenants.csv";

// Read CSV files
List<User> users = ReadCsv<User>(usersFile);
Expand All @@ -35,8 +36,9 @@ public static Tuple<List<User>, List<Role>, List<AccessLevel>, List<RoleAccessLe
List<RoleAccessLevel> roleAccessLevels = ReadCsv<RoleAccessLevel>(roleAccessLevelsFile);
List<UserAccessLevel> userAccessLevels = ReadCsv<UserAccessLevel>(userAccessLevelsFile);
List<UserRole> userRoles = ReadCsv<UserRole>(userRolesFile);
List<Tenant> tenants = ReadCsv<Tenant>(tenantsFile);

return new (users, roles, accessLevels, roleAccessLevels, userAccessLevels, userRoles);
return new (users, roles, accessLevels, roleAccessLevels, userAccessLevels, userRoles, tenants);
}
}
}
3 changes: 3 additions & 0 deletions Neo4j.console/csv/Tenants.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
TenantName,TenantId
TenantOne,1
TenantTwo,2
22 changes: 11 additions & 11 deletions Neo4j.console/csv/Users.csv
Original file line number Diff line number Diff line change
@@ -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
32 changes: 32 additions & 0 deletions Neo4j.library/Classes/Tenant.cs
Original file line number Diff line number Diff line change
@@ -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
};
}
}

}
8 changes: 6 additions & 2 deletions Neo4j.library/Classes/User.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,22 +9,26 @@ public class User : IImportable
{
public Guid UserId { get; set; }
public string UserName { get; set; }
public Int64 TenantId { get; set; }

public string ToCypherQuery()
{
return
"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)
Expand Down