diff --git a/server/Persistence/Seed/Data/seasons.json b/server/Persistence/Seed/Data/seasons.json new file mode 100644 index 0000000..73fa941 --- /dev/null +++ b/server/Persistence/Seed/Data/seasons.json @@ -0,0 +1,92 @@ +[ + { + "SeasonNumber": 1, + "NumberOfEpisodes": 22, + "DateFirstAired": "2005-09-22", + "DateLastAired": "2006-05-10" + }, + { + "SeasonNumber": 2, + "NumberOfEpisodes": 23, + "DateFirstAired": "2006-09-20", + "DateLastAired": "2007-05-16" + }, + { + "SeasonNumber": 3, + "NumberOfEpisodes": 20, + "DateFirstAired": "2007-09-26", + "DateLastAired": "2008-05-21" + }, + { + "SeasonNumber": 4, + "NumberOfEpisodes": 26, + "DateFirstAired": "2008-09-24", + "DateLastAired": "2009-05-20" + }, + { + "SeasonNumber": 5, + "NumberOfEpisodes": 23, + "DateFirstAired": "2009-09-23", + "DateLastAired": "2010-05-26" + }, + { + "SeasonNumber": 6, + "NumberOfEpisodes": 24, + "DateFirstAired": "2010-09-22", + "DateLastAired": "2011-05-18" + }, + { + "SeasonNumber": 7, + "NumberOfEpisodes": 24, + "DateFirstAired": "2011-09-21", + "DateLastAired": "2012-05-16" + }, + { + "SeasonNumber": 8, + "NumberOfEpisodes": 24, + "DateFirstAired": "2012-09-26", + "DateLastAired": "2013-05-22" + }, + { + "SeasonNumber": 9, + "NumberOfEpisodes": 24, + "DateFirstAired": "2013-09-25", + "DateLastAired": "2014-05-14" + }, + { + "SeasonNumber": 10, + "NumberOfEpisodes": 23, + "DateFirstAired": "2014-10-01", + "DateLastAired": "2015-05-06" + }, + { + "SeasonNumber": 11, + "NumberOfEpisodes": 22, + "DateFirstAired": "2015-09-30", + "DateLastAired": "2016-05-04" + }, + { + "SeasonNumber": 12, + "NumberOfEpisodes": 22, + "DateFirstAired": "2016-09-28", + "DateLastAired": "2017-05-10" + }, + { + "SeasonNumber": 13, + "NumberOfEpisodes": 22, + "DateFirstAired": "2017-09-27", + "DateLastAired": "2018-04-18" + }, + { + "SeasonNumber": 14, + "NumberOfEpisodes": 15, + "DateFirstAired": "2018-10-03", + "DateLastAired": "2019-02-06" + }, + { + "SeasonNumber": 15, + "NumberOfEpisodes": 10, + "DateFirstAired": "2020-01-08", + "DateLastAired": "2020-02-19" + } +] \ No newline at end of file diff --git a/server/Persistence/Seed/Seeder.cs b/server/Persistence/Seed/Seeder.cs index b4c9608..1c60a98 100644 --- a/server/Persistence/Seed/Seeder.cs +++ b/server/Persistence/Seed/Seeder.cs @@ -1,4 +1,5 @@ using System.Runtime.CompilerServices; +using System.Text.Json; using MongoDB.Driver; using server.Models; @@ -22,12 +23,17 @@ namespace server.Persistence.Seed Seasons = database.GetCollection(configuration.GetSection("MongoDBSettings:SeasonsCollection").Value); } - public async Task SeedAsync() + public async Task SeedSeasonsAsync() { - var seasons = await Seasons.Find(season => true).ToListAsync(); - foreach (var season in seasons) + await Seasons.DeleteManyAsync(season => true); + + var seasonsFilePath = Path.Combine(AppContext.BaseDirectory, "Persistence/Seed/Data/seasons.json"); + var seasonsJson = File.ReadAllText(seasonsFilePath); + var seasons = JsonSerializer.Deserialize>(seasonsJson); + + if(seasons != null) { - Console.WriteLine(season); + await Seasons.InsertManyAsync(seasons); } } } diff --git a/server/Program.cs b/server/Program.cs index 68d10f4..9ad0881 100644 --- a/server/Program.cs +++ b/server/Program.cs @@ -7,7 +7,7 @@ using server.Persistence.Seed; if (args.Length == 1 && args[0].ToLower() == "seed") { var seeder = new Seeder(); - _ = seeder.SeedAsync(); + _ = seeder.SeedSeasonsAsync(); } var builder = WebApplication.CreateBuilder(args); diff --git a/server/server.csproj b/server/server.csproj index 3ca00a4..1611fec 100644 --- a/server/server.csproj +++ b/server/server.csproj @@ -15,4 +15,8 @@ + + + +