From 545dcb421513042a50311f07e3ebd456dd147ee8 Mon Sep 17 00:00:00 2001 From: StevanFreeborn Date: Mon, 20 Jun 2022 08:50:11 -0500 Subject: [PATCH] working through how to seed database --- server/Persistence/DbContext.cs | 8 +------- server/Persistence/Seed/Seeder.cs | 34 +++++++++++++++++++++++++++++++ server/Program.cs | 9 ++++++++ 3 files changed, 44 insertions(+), 7 deletions(-) create mode 100644 server/Persistence/Seed/Seeder.cs diff --git a/server/Persistence/DbContext.cs b/server/Persistence/DbContext.cs index 8f2f9fa..a17ead1 100644 --- a/server/Persistence/DbContext.cs +++ b/server/Persistence/DbContext.cs @@ -1,10 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Microsoft.OpenApi.Writers; -using MongoDB.Driver; +using MongoDB.Driver; using server.Models; namespace server.Persistence diff --git a/server/Persistence/Seed/Seeder.cs b/server/Persistence/Seed/Seeder.cs new file mode 100644 index 0000000..b4c9608 --- /dev/null +++ b/server/Persistence/Seed/Seeder.cs @@ -0,0 +1,34 @@ +using System.Runtime.CompilerServices; +using MongoDB.Driver; +using server.Models; + +namespace server.Persistence.Seed +{ + public class Seeder + { + private readonly IMongoClient client; + private readonly IMongoDatabase database; + private readonly IConfiguration configuration; + private readonly IMongoCollection Seasons; + + public Seeder() + { + configuration = new ConfigurationBuilder() + .AddJsonFile("appsettings.json") + .Build(); + + client = new MongoClient(configuration.GetSection("MongoDBSettings:ConnectionString").Value); + database = client.GetDatabase(configuration.GetSection("MongoDBSettings:DatabaseName").Value); + Seasons = database.GetCollection(configuration.GetSection("MongoDBSettings:SeasonsCollection").Value); + } + + public async Task SeedAsync() + { + var seasons = await Seasons.Find(season => true).ToListAsync(); + foreach (var season in seasons) + { + Console.WriteLine(season); + } + } + } +} diff --git a/server/Program.cs b/server/Program.cs index 3e05561..68d10f4 100644 --- a/server/Program.cs +++ b/server/Program.cs @@ -2,6 +2,13 @@ using Microsoft.Extensions.Options; using Microsoft.OpenApi.Models; using server.Persistence; using server.Persistence.Repositories; +using server.Persistence.Seed; + +if (args.Length == 1 && args[0].ToLower() == "seed") +{ + var seeder = new Seeder(); + _ = seeder.SeedAsync(); +} var builder = WebApplication.CreateBuilder(args); @@ -42,3 +49,5 @@ app.UseAuthorization(); app.MapControllers(); app.Run(); + +