Ejemplo n.º 1
0
        /// <summary>
        /// Importiert die Ergebnisse (csv-Datei >> Datenbank).
        /// </summary>
        private static void InitData()
        {
            using (IUnitOfWork unitOfWork = new UnitOfWork())
            {
                Log.Information("Import der Spiele und Teams in die Datenbank");

                Log.Information("Datenbank löschen");
                unitOfWork.DeleteDatabase();

                Log.Information("Datenbank migrieren");
                unitOfWork.MigrateDatabase();

                Log.Information("Spiele werden von premierleague.csv eingelesen");
                var games = ImportController.ReadFromCsv().ToArray();
                if (games.Length == 0)
                {
                    Log.Warning("!!! Es wurden keine Spiele eingelesen");
                }
                else
                {
                    Log.Debug($"  Es wurden {games.Count()} Spiele eingelesen!");
                    var teams = games.Select(s => s.HomeTeam).Distinct().Union(games.Select(s => s.GuestTeam).Distinct());
                    Log.Debug($"  Es wurden {teams.Count()} Teams eingelesen!");
                    Log.Information("Daten werden in Datenbank gespeichert (in Context übertragen)");
                    unitOfWork.Games.AddRange(games);
                    unitOfWork.Teams.AddRange(teams);
                    unitOfWork.SaveChanges();
                    Log.Information("Daten wurden in DB gespeichert!");
                }
            }
        }
        /// <summary>
        /// Importiert die Ergebnisse (csv-Datei >> Datenbank).
        /// </summary>
        private static void InitData()
        {
            using (IUnitOfWork unitOfWork = new UnitOfWork())
            {
                Log.Information("Import der Spiele und Teams in die Datenbank");

                Log.Information("Datenbank löschen");
                // TODO: Datenbank löschen

                Log.Information("Datenbank migrieren");
                // TODO: Datenbank migrieren

                Log.Information("Spiele werden von premierleague.csv eingelesen");
                var games = ImportController.ReadFromCsv().ToArray();
                if (games.Length == 0)
                {
                    Log.Warning("!!! Es wurden keine Spiele eingelesen");
                }
                else
                {
                    Log.Debug($"  Es wurden {games.Count()} Spiele eingelesen!");

                    // TODO: Teams aus den Games ermitteln
                    var teams = Enumerable.Empty <Team>();
                    Log.Debug($"  Es wurden {teams.Count()} Teams eingelesen!");

                    Log.Information("Daten werden in Datenbank gespeichert (in Context übertragen)");

                    // TODO: Teams/Games in der Datenbank speichern
                    Log.Information("Daten wurden in DB gespeichert!");
                }
            }
        }
Ejemplo n.º 3
0
        static async Task Main()
        {
            Console.WriteLine("Import der Spiele und Teams in die Datenbank");
            using IUnitOfWork unitOfWork = new UnitOfWork();
            Console.WriteLine("Datenbank löschen");
            await unitOfWork.DeleteDatabaseAsync();

            Console.WriteLine("Datenbank migrieren");
            await unitOfWork.MigrateDatabaseAsync();

            Console.WriteLine("Spiele werden von premierleague.csv eingelesen");
            var games = (await ImportController.ReadFromCsvAsync()).ToArray();

            if (games.Length == 0)
            {
                Console.WriteLine("!!! Es wurden keine Spiele eingelesen");
                return;
            }
            Console.WriteLine($"  Es wurden {games.Count()} Spiele eingelesen!");
            var teams = games.SelectMany(g => new List <Team> {
                g.HomeTeam, g.GuestTeam
            }).Distinct().ToList();

            Console.WriteLine($"  Es wurden {teams.Count()} Teams eingelesen!");
            Console.WriteLine("Daten werden in Datenbank gespeichert (in Context übertragen)");
            Console.WriteLine("Zuerst die Teams, damit die maximale Rundenzahl bei der Validierung stimmt");
            await unitOfWork.Teams.AddRangeAsync(teams);

            await unitOfWork.SaveChangesAsync();

            Console.WriteLine("Dann die Games mit den TeamGoals und deren TeamId");
            await unitOfWork.Games.AddRangeAsync(games);

            await unitOfWork.SaveChangesAsync();

            Console.WriteLine();
            Console.WriteLine("Daten wurden in DB gespeichert!");
            Console.Write("Beenden mit Eingabetaste ...");
            Console.ReadLine();
        }