Esempio n. 1
0
        static void Main(string[] args)
        {
            var context = new FootballEntities();
            var doc = XDocument.Load("../../../leagues-and-teams.xml");
            var leagues = doc.Root.Elements();
            var leagueCounter = 1;

            try
            {
                foreach (var league in leagues)
                {
                    Console.WriteLine("Processing league #{0} ...", leagueCounter);
                    //League newLeague = new League();
                    var newLeague = ProcessLeague(context, league);

                    var teamsNode = league.Element("teams");
                    if (teamsNode != null)
                    {
                        foreach (var team in teamsNode.Elements())
                        {
                            ProcessTeam(context, team, newLeague);
                        }
                    }

                    leagueCounter++;
                    Console.WriteLine();
                }
            }
            catch (ArgumentException ex)
            {
                Console.Error.WriteLine(ex.Message);
            }
        }
Esempio n. 2
0
        static void Main(string[] args)
        {
            var context = new FootballEntities();
            var leagues = context.Leagues
                .Select(l => new
                {
                    leagueName = l.LeagueName,
                    teams = l.Teams.Select(t => t.TeamName).OrderBy(t => t)
                })
                .OrderBy(l => l.leagueName)
                .ToList();

            var serializer = new JavaScriptSerializer();
            var json = serializer.Serialize(leagues);
            File.WriteAllText("../../../leagues-and-teams.json", json);
        }
Esempio n. 3
0
        private static League ProcessLeague(FootballEntities context, XElement league)
        {
            League newLeague = null;
            var leagueNode = league.Element("league-name");
            if (leagueNode != null)
            {
                newLeague = context.Leagues.FirstOrDefault(l => l.LeagueName == leagueNode.Value);
                if (newLeague == null)
                {
                    newLeague = new League() { LeagueName = leagueNode.Value };
                    context.Leagues.AddOrUpdate(newLeague);
                    context.SaveChanges();
                    Console.WriteLine("Created league: {0}", newLeague.LeagueName);
                }
                else
                {
                    Console.WriteLine("Existing league: {0}", newLeague.LeagueName);
                }
            }

            return newLeague;
        }
Esempio n. 4
0
        static void Main(string[] args)
        {
            var context = new FootballEntities();
            var matches = context.InternationalMatches
                .Select(m => new Match()
                {
                    HomeCountryName = m.HomeTeamCountry.CountryName,
                    HomeCountryCode = m.HomeCountryCode,
                    AwayCountryName = m.AwayTeamCountry.CountryName,
                    AwayCountryCode = m.AwayCountryCode,
                    Date = m.MatchDate,
                    LeagueName = m.League.LeagueName,
                    Score = m.HomeGoals + "-" + m.AwayGoals
                })
                .OrderBy(m => m.Date)
                .ThenBy(m => m.HomeCountryName)
                .ThenBy(m => m.AwayCountryName)
                .ToList();

            var xml = new XDocument();
            var root = new XElement("matches");
            xml.Add(root);
            foreach (var match in matches)
            {
                var matchNode = new XElement("match");
                if (match.Date != null)
                {
                    var date = match.Date.Value;
                    if (date.Hour == 0 && date.Minute == 0)
                    {
                        matchNode.SetAttributeValue("date", date.ToString("dd-MMM-yyyy"));
                    }
                    else
                    {
                        matchNode.SetAttributeValue("date-time", date.ToString("dd-MMM-yyyy hh:mm"));
                    }
                }

                var homeCountryNode = new XElement("home-country");
                homeCountryNode.SetAttributeValue("code", match.HomeCountryCode);
                homeCountryNode.Value = match.HomeCountryName;
                matchNode.Add(homeCountryNode);
                var awayCountryNode = new XElement("away-country");
                awayCountryNode.SetAttributeValue("code", match.AwayCountryCode);
                awayCountryNode.Value = match.AwayCountryName;
                matchNode.Add(awayCountryNode);
                if (match.Score != "-")
                {
                    var scoreNode = new XElement("score", match.Score);
                    matchNode.Add(scoreNode);
                }

                if (match.LeagueName != null)
                {
                    var scoreNode = new XElement("league", match.LeagueName);
                    matchNode.Add(scoreNode);
                }

                root.Add(matchNode);
            }

            xml.Save("../../../international-matches.xml");
        }
Esempio n. 5
0
        private static void ProcessTeam(FootballEntities context, XElement team, League league)
        {
            var newTeam = new Team();
            var name = team.Attribute("name");
            if (name != null)
            {
                newTeam.TeamName = name.Value;
            }
            else
            {
                throw new ArgumentException("Team name is mandatory when team tag exists");
            }

            var countryName = team.Attribute("country");
            if (countryName != null)
            {
                var countryByName = context.Countries.FirstOrDefault(c => c.CountryName == countryName.Value);
                if (countryByName == null)
                {
                    var message = string.Format("The given country does not exit in the database. {0}",
                        countryName);
                    throw new ArgumentException(message);
                }

                newTeam.Country = countryByName;
            }

            Team teamInDb = null;
            if (newTeam.Country != null)
            {
                teamInDb =
                    context.Teams.FirstOrDefault(t => t.TeamName == newTeam.TeamName &&
                                                      t.Country.CountryName == newTeam.Country.CountryName);
            }

            if (teamInDb == null)
            {
                if (newTeam.Country != null)
                {
                    Console.WriteLine("Created team: {0} ({1})", newTeam.TeamName, newTeam.Country.CountryName);
                }
                else
                {
                    Console.WriteLine("Created team: {0} (no country)", newTeam.TeamName);
                }

                if (league != null)
                {
                    newTeam.Leagues.Add(league);
                    Console.WriteLine("Added team to league: {0} to league {1}",
                        newTeam.TeamName,
                        league.LeagueName);
                }

                context.Teams.AddOrUpdate(newTeam);
                context.SaveChanges();
            }
            else
            {
                if (newTeam.Country != null)
                {
                    Console.WriteLine("Existing team: {0} ({1})", newTeam.TeamName, newTeam.Country.CountryName);
                }
                else
                {
                    Console.WriteLine("Existing team: {0} (no country)", newTeam.TeamName);
                }

                if (league != null)
                {
                    if (teamInDb.Leagues.Any(l => l.LeagueName == league.LeagueName))
                    {
                        teamInDb.Leagues.Add(league);
                        Console.WriteLine("Existing team in league: {0} belongs to {1}",
                            teamInDb.TeamName,
                            teamInDb.Leagues.First().LeagueName);
                    }
                    else
                    {
                        teamInDb.Leagues.Add(league);
                        context.SaveChanges();
                        Console.WriteLine("Added team to league: {0} to league {1}",
                            newTeam.TeamName,
                            league.LeagueName);
                    }
                }
            }
        }