Esempio n. 1
0
        private static void CreateLeaderboardsView(TheGameDbContext dbContext, string viewName, string schemaName, string resourceFileName, ILogger <IHost> logger)
        {
            logger?.LogInformation("Creating Leaderboards view object in the database. Please wait...");

            var assembly       = Assembly.GetEntryAssembly();
            var assemblyName   = assembly.FullName.Substring(0, assembly.FullName.IndexOf(','));
            var resource       = assembly.GetManifestResourceStream($"{assemblyName}.Resources.{resourceFileName}");
            var resourceStream = new StreamReader(resource);

            var sql = resourceStream.ReadToEnd();

            resourceStream.Close();

            dbContext.Database.ExecuteSqlRaw($"IF OBJECT_ID('{schemaName}.{viewName}') IS NOT NULL BEGIN DROP VIEW {schemaName}.{viewName} END");
            dbContext.Database.ExecuteSqlRaw($"CREATE VIEW {viewName} AS {sql}");

            logger?.LogInformation("Leaderboards view object creation successful!");
        }
Esempio n. 2
0
        internal static void SeedDatabase(TheGameDbContext dbContext, ILogger <IHost> logger)
        {
            bool commitChanges = false;

            if (!dbContext.Players.Any())
            {
                logger?.LogInformation("Seeding database with player data. Please wait...");

                var now     = DateTimeOffset.UtcNow;
                var players = new List <Player>();
                for (int i = 1; i <= 1000; i++)
                {
                    players.Add(new Player {
                        Name = $"Player {i}", Nickname = $"player{i}", RegistrationDate = now, GameMatchesPlayers = new List <GameMatchesPlayers>()
                    });
                }

                dbContext.Players.AddRange(players);
                commitChanges = true;
            }

            if (!dbContext.Games.Any())
            {
                logger?.LogInformation("Seeding database with game data. Please wait...");

                var now   = DateTimeOffset.UtcNow;
                var games = new List <Game>();
                for (int i = 1; i <= 20; i++)
                {
                    games.Add(new Game {
                        Title = $"Game {i}", RegistrationDate = now
                    });
                }

                dbContext.Games.AddRange(games);
                commitChanges = true;
            }

            if (commitChanges)
            {
                dbContext.SaveChanges();
                logger?.LogInformation("Database seed successful!");
            }
        }