using InnovEnergy.App.Backend.Model.Relations; namespace InnovEnergy.App.Backend.Database; public static partial class Db { public static void CreateFakeRelations() { Connection.RunInTransaction(() => { CreateFakeUserTree(); CreateFakeFolderTree(); LinkFakeInstallationsToFolders(); GiveFakeUsersAccessToFolders(); GiveFakeUsersAccessToInstallations(); }); } private static void CreateFakeUserTree() { foreach (var userId in Enumerable.Range(1, NbUsers)) { var user = GetUserById(userId); if (user is null) continue; user.ParentId = userId > 1 ? Random.Shared.Next(userId - 1) + 1 : 0; // root has parentId 0 Update(user); } } private static void CreateFakeFolderTree() { foreach (var folderId in Enumerable.Range(1, NbFolders)) { var folder = GetFolderById(folderId); if (folder is null) continue; folder.ParentId = folderId > 1 ? Random.Shared.Next(folderId - 1) + 1 : 0; // root has parentId 0 Update(folder); } } private static void LinkFakeInstallationsToFolders() { var nFolders = NbFolders; foreach (var installation in Installations) { installation.ParentId = Random.Shared.Next(nFolders) + 1; Update(installation); } } private static void GiveFakeUsersAccessToFolders() { foreach (var uf in User2Folder) // remove existing relations Connection.Delete(uf); var nFolders = NbFolders; var nUsers = NbUsers; foreach (var user in Users) while (Random.Shared.Next((Int32)(nUsers - user.Id + 1)) != 0) { var relation = new User2Folder { UserId = user.Id, FolderId = Random.Shared.Next(nFolders) + 1 }; Connection.Insert(relation); } } private static void GiveFakeUsersAccessToInstallations() { foreach (var ui in User2Installation) // remove existing relations Connection.Delete(ui); var nbInstallations = NbInstallations; foreach (var user in Users) while (Random.Shared.Next(5) != 0) { var relation = new User2Installation { UserId = user.Id, InstallationId = Random.Shared.Next(nbInstallations) + 1 }; Connection.Insert(relation); } } }