public static void EnsureSeeded(this IdeContext context, IFileStorageNoSqlDbSettings settings) { if (context.Users.Count() == 0) { context.SeedWithCorrectData(settings); } }
public NoSqlRepository(IFileStorageNoSqlDbSettings settings) { var client = new MongoClient(settings.ConnectionString); var database = client.GetDatabase(settings.DatabaseName); var itemsCollectionName = GetItemsCollectionName(); _items = database.GetCollection <T>(itemsCollectionName); }
public static void SeedWithCorrectData(this IdeContext context, IFileStorageNoSqlDbSettings settings) { var avatars = GenerateCorrectImages(); context.Images.AddRange(avatars); var editorSettings = GenerateCorrectEditorSettings(); context.EditorSettings.AddRange(editorSettings); context.SaveChanges(); var users = GenerateCorrectUsers(context.Images.ToArray(), context.EditorSettings.ToArray()); context.Users.AddRange(users); context.SaveChanges(); var dBUsers = context.Users.ToArray(); var projects = GenerateCorrectProjects(dBUsers, context.EditorSettings.ToArray()); context.Projects.AddRange(projects); context.SaveChanges(); var dBProjects = context.Projects.ToArray(); var projectMembers = GenerateCorrectProjectMembers(dBProjects, dBUsers); context.ProjectMembers.AddRange(projectMembers); var favouriteProjects = GenerateCorrectFavouriteProjects(dBProjects, dBUsers); context.FavouriteProjects.AddRange(favouriteProjects); context.SaveChanges(); EnsureNoSqlDbSeeded(settings, dBProjects); var builds = GenerateRandomBuilds(context.Users.ToList(), context.Projects.ToList()); context.Builds.AddRange(builds); context.SaveChanges(); }
public FileRepository(IFileStorageNoSqlDbSettings settings) : base(settings) { }
private static void EnsureNoSqlDbSeeded(IFileStorageNoSqlDbSettings settings, ICollection <Project> projects) { IMongoCollection <ProjectStructure> projectStructureItems; IMongoCollection <File> filesItems; IMongoCollection <FileHistory> fileHistoriesItems; var client = new MongoClient(settings.ConnectionString); var database = client.GetDatabase(settings.DatabaseName); var itemsCollectionName = GetProjectStructureItemsCollectionName(); projectStructureItems = database.GetCollection <ProjectStructure>(itemsCollectionName); filesItems = database.GetCollection <File>(GetFileItemsCollectionName()); fileHistoriesItems = database.GetCollection <FileHistory>(GetFileHistoryItemsCollectionName()); foreach (var project in projects) { var fileStructure = new FileStructure() { Id = Guid.NewGuid().ToString(), Type = Common.ModelsDTO.Enums.TreeNodeType.Folder, Details = "Project details", Name = project.Name }; File f1 = new File() { Id = Guid.NewGuid().ToString("N").Substring(0, 24), Name = "Program.cs", Folder = project.Name, CreatorId = 1, ProjectId = project.Id, CreatedAt = DateTime.Now, Content = GetCSFileContent(project.Name), Language = "csharp" }; File f2 = new File() { Id = Guid.NewGuid().ToString("N").Substring(0, 24), Name = project.Name + ".csproj", Folder = project.Name, CreatorId = 1, ProjectId = project.Id, CreatedAt = DateTime.Now, Content = GetCSProjFileContent(), Language = "xml" }; fileStructure.NestedFiles.Add(new FileStructure() { Id = f1.Id, Name = "Program.cs", Type = Common.ModelsDTO.Enums.TreeNodeType.File }); fileStructure.NestedFiles.Add(new FileStructure() { Id = f2.Id, Name = project.Name + ".csproj", Type = Common.ModelsDTO.Enums.TreeNodeType.File }); var emptyStructure = new ProjectStructure(); emptyStructure.Id = project.Id.ToString(); emptyStructure.NestedFiles.Add(fileStructure); filesItems.InsertOne(f1); filesItems.InsertOne(f2); projectStructureItems.InsertOne(emptyStructure); } }