示例#1
0
        // GET: /user/statistics/player/{playerName}/league/{leagueName}/season/{season}/round/{round}
        public ActionResult PlayerRound(string playerName, string leagueName, string season, int round)
        {
            var playerId         = Players.GetIdByName(playerName);
            var leagueId         = Leagues.GetIdByName(leagueName);
            var seasonPeriod     = Seasons.GetSeasonPeriodFromUrlParameter(season, '-');
            var seasonId         = Seasons.GetIdByPeriod(seasonPeriod);
            var leaguesSeasonsId = LeaguesSeasons.GetIdByLeagueAndSeason(leagueId, seasonId);
            var roundId          = Rounds.GetRoundId(round, leaguesSeasonsId);
            var statistics       = Statistics.PlayerRoundStats(playerId, roundId);

            return(View("PlayerLeague", statistics));
        }
 public void Create(Leagues instance)
 {
     if (instance == null)
     {
         throw new ArgumentNullException("instance");
     }
     else
     {
         Db.Leagues.Add(instance);
         this.SaveChanges();
     }
 }
 public void Update(Leagues instance)
 {
     if (instance == null)
     {
         throw new ArgumentNullException("instance");
     }
     else
     {
         Db.Entry(instance).State = EntityState.Modified;
         this.SaveChanges();
     }
 }
        public async Task <IActionResult> Create([Bind("Id,Name,Code,Country")] Leagues leagues)
        {
            if (ModelState.IsValid)
            {
                _context.Add(leagues);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["Country"] = new SelectList(_context.Countries, "Id", "Name", leagues.Country);
            return(View(leagues));
        }
示例#5
0
 public ActionResult Edit(Leagues leagues)
 {
     if (leagues != null && ModelState.IsValid)
     {
         _leagues.Update(leagues);
         return(RedirectToAction("Index", "cfgPlayGames"));
     }
     else
     {
         return(RedirectToAction("Index"));
     }
 }
        public bool GenerateSchedule()
        {
            Leagues newLeagueEntity = new Leagues
            {
                Name = this.NewLeagueName
            };

            DateTime yearOfStart = new DateTime(this.NewLeagueYearOfStart, 1, 1);

            LeagueEntityToLibraryAdapter newLeagueAdapter = new LeagueEntityToLibraryAdapter();

            newLeagueAdapter.Adapt(newLeagueEntity);

            RoundRobinScheduler scheduler = new RoundRobinScheduler();

            scheduler.LoadLeague(newLeagueAdapter);

            List <ITeam> listOfTeamsAdapter = new List <ITeam>();

            foreach (Teams team in this.TeamsForNewLeague)
            {
                TeamEntityToLibraryAdapter teamAdapter = new TeamEntityToLibraryAdapter();
                teamAdapter.Adapt(team);
                listOfTeamsAdapter.Add(teamAdapter);
            }

            scheduler.LoadTeams(listOfTeamsAdapter);

            scheduler.YearOfStart = yearOfStart;

            scheduler.GenerateSchedule();

            List <IMatch> listOfMatchesFromAlgorithm = scheduler.GetSchedule();

            List <Matches> listOfMatchesEntities = new List <Matches>();

            foreach (IMatch match in listOfMatchesFromAlgorithm)
            {
                Matches m = new Matches()
                {
                    TimeOfPlay = match.TimeOfPlay,
                    HomeTeamId = match.HomeTeam.Id,
                    AwayTeamId = match.AwayTeam.Id,
                };

                Context.Matches.Add(m);
            }
            Context.Leagues.Add(newLeagueEntity);
            Context.SaveChanges();

            return(true);
        }
示例#7
0
        private void HandleLeagueChanged(Leagues oldLeague)
        {
            var newLeague = Properties.Settings.Default.League;

            if (oldLeague != newLeague)
            {
                var favoriteTeamDialog = new FavoriteTeam
                {
                    ShowClosingMessage = false
                };
                favoriteTeamDialog.ShowDialog(this);
            }
        }
示例#8
0
        public void AddSeasonAction()
        {
            var vm      = new LeagueViewModel(SimpleIoc.Default.GetInstance <IOpenLigaService>());
            var message = new ModalDialogMessage {
                ViewModel = vm
            };

            this.MessengerInstance.Send(message);
            if (message.DialogResult == true)
            {
                Leagues.Add(vm);
            }
        }
        public List<ITeamResults> GetResults(Leagues league)
        {
            List<ITeamResults> teams = new List<ITeamResults>();

            HtmlDocument doc = new HtmlDocument();

            var stream =
                GetPageStream(GuardianLeagueMappings.GetUriForLeague(league));

            doc.Load(stream, Encoding.UTF8);

            var tables = doc.DocumentNode.SelectNodes("//table[@class='table-football']");

            var rows = tables[0].SelectNodes(".//tr");

            // Pos 	Team 	P 	W 	D 	L 	F 	A 	W 	D 	L 	F 	A 	W 	D 	L 	F 	A 	GD 	Pts
            // 0    1       2   3   4   5   6   7   8   9   10  11  12  13  14  15  16  17  19  20
            foreach (var row in rows)
            {
                HomeResultSet home = new HomeResultSet();
                AwayResultSet away = new AwayResultSet();
                HtmlNodeCollection cells = row.SelectNodes(".//td");

                if (cells == null)
                {
                    continue;
                }

                string team = cells[1].InnerText;
                // Cell has a td which has an a with a href..
                string link = string.Concat(root, cells[1].ChildNodes.Single().Attributes["href"].Value);

                home.Won = int.Parse(cells[3].InnerText);
                home.Drawn = int.Parse(cells[4].InnerText);
                home.Lost = int.Parse(cells[5].InnerText);
                home.GoalsScored = int.Parse(cells[6].InnerText);
                home.GoalsConceded = int.Parse(cells[7].InnerText);

                away.Won = int.Parse(cells[8].InnerText);
                away.Drawn = int.Parse(cells[9].InnerText);
                away.Lost = int.Parse(cells[10].InnerText);
                away.GoalsScored = int.Parse(cells[11].InnerText);
                away.GoalsConceded = int.Parse(cells[12].InnerText);

                teams.Add(new HomeAndAwayTeamResults(team, link, home, away));
            }

            teams.Sort(new TeamResultsComparer());

            return teams;
        }
示例#10
0
        private async Task <bool> FetchAndAddRateDataToDictionaryAsync(Key key, Leagues league = Leagues.Default)
        {
            if (key.IsFossil())
            {
                foreach (var rateData in await FetchFossilRateAsync())
                {
                    RateDataDictionary[key] = rateData;
                }

                return(true);
            }

            return(false);
        }
示例#11
0
        public void Import(XDocument file, FootballEntities context)
        {
            var leaguesNodes = file.XPathSelectElements("leagues-and-teams/league");

            foreach (var leagueNode in leaguesNodes)
            {
                // parse league info
                // all optional
                var    tempLeague = new Leagues();
                string leagueName = null;

                // check if there is a league
                if (leagueNode.Element("league-name") != null)
                {
                    leagueName = leagueNode.Element("league-name").Value;

                    var league = context.Leagues.FirstOrDefault(l => l.LeagueName == leagueName);

                    // league exists + add league
                    if (league != null)
                    {
                        Console.WriteLine("Existing league: " + leagueName);
                        AddTeamsToLeagueAndDb(context, leagueNode, league);
                    }

                    // league doesn't exist - create it
                    else
                    {
                        var newLeague = new Leagues();
                        newLeague.LeagueName = leagueName;
                        context.Leagues.Add(newLeague);
                        context.SaveChanges();
                        Console.WriteLine("Created league: " + leagueName);
                        AddTeamsToLeagueAndDb(context, leagueNode, newLeague);
                    }
                }

                //AddTeamsToLeagueAndDb(context, leagueNode, tempLeague);

                // Add the league to the DB
                // context.Leagues.Add(tempLeague);

                else
                {
                    AddTeamsToDb(context, leagueNode);
                }

                context.SaveChanges();
            }
        }
示例#12
0
        /// <summary>
        /// Initializes a new instance of the Clash of Clans API
        /// </summary>
        /// <param name="tokens">Your personal API key(s)</param>
        public ClashOfClansClient(params string[] tokens)
        {
            TokenValidator.Validate(tokens);

            _options = new ClashOfClansOptionsInternal(tokens);
            var gameData = new GameData(_options);

            Clans     = new Clans(gameData);
            Locations = new Locations(gameData);
            Leagues   = new Leagues(gameData);
            Players   = new Players(gameData);
            Labels    = new Labels(gameData);
            GoldPass  = new GoldPass(gameData);
        }
 private void ReloadLeagues(List <League> leagues)
 {
     Leagues.Clear();
     foreach (var league in leagues.OrderBy(l => l.Name)) //pero mas mejor si lo mando desde el api
     {
         Leagues.Add(new LeagueItemViewModel
         {
             LeagueId = league.LeagueId,
             Logo     = league.Logo,
             Name     = league.Name,
             Teams    = league.Teams,
         });
     }
 }
示例#14
0
        private string getLeagueKey(Leagues league)
        {
            switch (league)
            {
            case Leagues.LigaSantander:
                return(KeyLigaSantander);

            case Leagues.Liga123:
                return(KeyLiga123);

            case Leagues.PremierLeague:
                return(KeyPremier);

            case Leagues.ChampionShip:
                return(KeyChampionship);

            case Leagues.Bundesliga:
                return(KeyBundesliga);

            case Leagues.Bundesliga2:
                return(KeyBundesliga2);

            case Leagues.SeriaA:
                return(KeySerieA);

            case Leagues.Ligue1:
                return(KeyLigue1);

            case Leagues.Ligue2:
                return(KeyLigue2);

            case Leagues.Eredivise:
                return(KeyEredivise);

            case Leagues.TurqueiLeague:
                return(KeyTurquei);

            case Leagues.BelgiumLeague:
                return(KeyBelgium);

            case Leagues.ScotlandPremierShip:
                return(KeyScotlandPremierShip);

            case Leagues.ScotlandChampoinShip:
                break;
            }

            return("");
        }
示例#15
0
        private void AddAllLeagues()
        {
            foreach (var league in _leagueAndSeasonInfoService.GetAllLeagueInfo())
            {
                foreach (var season in league.Seasons)
                {
                    Leagues.Add(LeagueViewModel.Create(league.League, season));
                }
            }

            if (Leagues.Count > 0)
            {
                SelectedLeague = Leagues[0];
            }
        }
示例#16
0
文件: Program.cs 项目: Kim368/C-
        public Master_Basketball(Leagues leagues) : base()
        {
            Console.WriteLine("Введите количество очков за всё время: ");
            try
            {
                Point = Convert.ToInt32(Console.ReadLine());
            }
            catch (Exception)
            {
                Point = 0;
            }

            this.leagues     = leagues;
            WeightBenchPress = BenchPress(WeightBenchPress);
            Speed            = RunSpeed(Speed);
        }
示例#17
0
        public void Parse(string response)
        {
            XmlDocument xml = new XmlDocument(); //* create an xml document object.
            XmlTextReader xmlTextReader = new XmlTextReader(new StringReader(response));
            xml.Load(xmlTextReader);

            try
            {
                XmlNodeList xmlLeagues = xml.SelectNodes("GetCategoryLeagues/Leagues/League");
                leagues = LeagueParsing.ParseLeagues(xmlLeagues);
            }
            catch
            {
                throw new InvalidStateException("Answer from the server is not well-formed.");
            }
        }
示例#18
0
        public static IActionResult Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
            ILogger log)
        {
            string userId          = req.Query["userid"].ToString();
            var    endpoint        = new MflEndpoint();
            var    leaguesEndpoint = new Uri($"{endpoint.Host}/{endpoint.Year}/export?TYPE=myleagues&FRANCHISE_NAMES=1&JSON=1");

            string leaguesResponse = MflEndpointController.GetResponseString(leaguesEndpoint, endpoint, userId).Result;;

            var leagues = new Leagues(leaguesResponse);

            return(userId != null
                ? (ActionResult) new OkObjectResult(leagues.LeagueList)
                : new BadRequestObjectResult("Please pass a name on the query string or in the request body"));
        }
 private void GotLeaguesForPlayer(SummonerLeaguesDTO result)
 {
     Dispatcher.BeginInvoke(DispatcherPriority.Input, new ThreadStart(() =>
     {
         if (result.SummonerLeagues != null && result.SummonerLeagues.Count > 0)
         {
             LeagueHeader.Visibility = System.Windows.Visibility.Visible;
             Leagues overview        = LeaguesContainer.Content as Leagues;
             overview.Update(result);
         }
         else
         {
             LeagueHeader.Visibility = System.Windows.Visibility.Collapsed;
         }
     }));
 }
示例#20
0
        public static LeagueConstants For(Leagues league)
        {
            switch (league)
            {
            case Leagues.Rounders2019: return(Rounders2019);

            case Leagues.CrossCountryRivals2019: return(CrossCountryRivals2019);

            case Leagues.Rounders2020: return(Rounders2020);

            case Leagues.Rounders2021: return(Rounders2021);

            case Leagues.Rounders2022: return(Rounders2022);

            default: return(null);
            }
        }
示例#21
0
        public IActionResult Leagues()
        {
            var model = new List <League>();


            HttpClient httpClient = new HttpClient()
            {
                BaseAddress = new Uri(url)
            };

            var     json = httpClient.GetStringAsync("all_leagues.php?s=Soccer").Result;
            Leagues myDeserializedClass = JsonConvert.DeserializeObject <Leagues>(json);

            model = myDeserializedClass.leagues;

            return(View(model));
        }
示例#22
0
        public static Leagues ParseLeagues(XmlNodeList leaguesList)
        {
            Leagues l = new Leagues();

            if (leaguesList.Count > 0)
            {
                foreach (XmlNode league in leaguesList)
                {
                    int id = int.Parse(league["ID"].InnerText);
                    bool leagueLoaded = bool.Parse(league["Loaded"].InnerText);

                    Rounds rounds = RoundParsing.ParseRounds(league.SelectNodes("Rounds/Round"));
                    l.Add(new League(id, league["Name"].InnerText, leagueLoaded, rounds));
                }
            }

            return l;
        }
示例#23
0
        static Leagues LeagueFromString(string league)
        {
            Leagues ret = Leagues.None;

            league = league.ToLower();

            if (league == null)
            {
                ret = Leagues.None;
            }
            else
            {
                if ((league == "bronze") || (league == "bronzie") || (league == "bronzer") || league.StartsWith("b"))
                {
                    ret = Leagues.Bronze;
                }
                else if ((league == "silver") || league.StartsWith("s"))
                {
                    ret = Leagues.Silver;
                }
                else if ((league == "gold") || league.StartsWith("go"))
                {
                    ret = Leagues.Gold;
                }
                else if ((league == "platinum") || (league == "plat") || league.StartsWith("p"))
                {
                    ret = Leagues.Platinum;
                }
                else if ((league == "diamond") || league.StartsWith("d"))
                {
                    ret = Leagues.Diamond;
                }
                else if ((league == "master") || (league == "masters") || league.StartsWith("m"))
                {
                    ret = Leagues.Master;
                }
                else if ((league == "grandmaster") || (league == "grand master") || (league == "gm") || (league == "grandmasters") || league.StartsWith("gr"))
                {
                    ret = Leagues.Grandmaster;
                }
            }

            return(ret);
        }
        public static string GetUriForLeague(Leagues league)
        {
            switch (league)
            {
                case Leagues.EnglishPremierLeague:
                    return "http://www.theguardian.com/football/premierleague/table";

                case Leagues.EnglishChampionship:
                    return "http://www.theguardian.com/football/championship/table";

                case Leagues.EnglishLeagueOne:
                    return "http://www.theguardian.com/football/leagueonefootball/table";

                case Leagues.EnglishLeagueTwo:
                    return "http://www.theguardian.com/football/leaguetwofootball/table";

                case Leagues.SPL:
                    return "http://www.theguardian.com/football/scottishpremierleague/table";

                case Leagues.DivisionOne:
                    return "http://www.theguardian.com/football/scottish-division-one/table";

                case Leagues.DivisionTwo:
                    return "http://www.theguardian.com/football/scottish-division-two/table";

                case Leagues.DivisionThree:
                    return "http://www.theguardian.com/football/scottish-division-three/table";

                case Leagues.LaLiga:
                    return "http://www.theguardian.com/football/laligafootball/table";

                case Leagues.Ligue1:
                    return "http://www.theguardian.com/football/ligue1football/table";

                case Leagues.Bundesliga:
                    return "http://www.theguardian.com/football/bundesligafootball/table";

                case Leagues.SeriaA:
                    return "http://www.theguardian.com/football/serieafootball/table";

                default:
                    throw new NotImplementedException();
            }
        }
示例#25
0
        string SendResponse(HttpListenerRequest request)
        {
            try
            {
                string[] urlParts = request.RawUrl.Split('/');
                string   lastPart = urlParts.Length > 0? urlParts[urlParts.Length - 1] : null;
                Holder   holder   = null;

                if (Leagues.Count == 1)
                {
                    holder = Leagues.First();
                }
                else if (urlParts.Length > 1)
                {
                    holder = Leagues.Find(x => x.Key == urlParts[1]);
                }

                if (request.RawUrl == "/")
                {
                    if (Leagues.Count == 1)
                    {
                        return(ReportPages.OverviewPage(holder, false, ReportPages.GameHyper, OutputFormat.Svg));
                    }
                    else
                    {
                        return(ReportPages.RootPage(Leagues));
                    }
                }
                else if (lastPart.EndsWith(".html"))
                {
                    return(HtmlResponse(request.RawUrl, lastPart, holder));
                }
                else
                {
                    return(RestResponse(request));
                }
            }
            catch (Exception ex)
            {
                return("<html><body>\n" + ex.Message + "\n<br/><br/>\n" + ex.StackTrace + "</body></html>");

                throw;
            }
        }
示例#26
0
        protected void Page_Load(object sender, EventArgs e)
        {
            Leagues a = new Leagues();

            a.userid = Convert.ToInt32(Session["id"]);
            Random RAND = new Random();

            for (int i = 0; i < a.showLeagues().Count; i++)
            {
                if (!Page.IsPostBack)
                {
                    leagCreate.InnerHtml += @"<tr class=""click-row"" data-href=""#"">
                    <th scope=""row"">" + (i + 1) + @"</th>
 
                     <td>" + a.showLeagues()[i].LeagueName + @"</td>
    
                        <td>" + a.showLeagues()[i].Tourname + @"</td>
       
                           <td>" + RAND.Next(20, 100) + @"+</td>
       
                       </tr>";
                }
            }
            int j = 0;

            foreach (var item in new ParticipantsManager().JoinedLeagues(Convert.ToInt32(Session["id"])))
            {
                if (!Page.IsPostBack)
                {
                    leaguesP.InnerHtml += @"<tr class=""click-row"" data-href=""#"">
                    <th scope=""row"">" + (j + 1) + @"</th>
 
                     <td>" + item.LeagueName + @"</td>
    
                        <td>" + item.Tourname + @"</td>
       
                           <td>" + RAND.Next(20, 100) + @"+</td>
       
                       </tr>";
                    j++;
                }
            }
        }
        /// <summary>
        /// Метод принимает название лиги и возвращает ссылку на страницу предстоящих матчей этой лиги на FlashScore.
        /// </summary>
        /// <param name="league">Название лиги.</param>
        /// <returns>Ссылка на страницу FlashScore.</returns>
        public static string ToLink(this Leagues league)
        {
            switch (league)
            {
            case Leagues.ProLeagueMen:
                return("https://www.flashscore.ru/table-tennis/others-men/liga-pro/fixtures/");

            case Leagues.TTCupMen:
                return("https://www.flashscore.ru/table-tennis/others-men/tt-cup/fixtures/");

            case Leagues.WinCupMen:
                return("https://www.flashscore.ru/table-tennis/others-men/win-cup/fixtures/");

            case Leagues.SetkaCupMen:
                return("https://www.flashscore.ru/table-tennis/others-men/setka-cup/fixtures/");

            default:
                return(String.Empty);
            }
        }
示例#28
0
        public async Task <Leagues> GetLeagues()
        {
            Leagues leagues = memoryCache.Get <Leagues>("Leagues");

            if (leagues != null)
            {
                return(leagues);
            }
            else
            {
                leagues = await client.GetFromJsonAsync <Leagues>("/api/leagues?page=1&limit=100");

                foreach (var l in leagues.LeagueList)
                {
                    l.Image = await client.GetByteArrayAsync($"/api/leagues/{l.Id}/image");
                }
                memoryCache.Set("Leagues", leagues);
            }
            return(leagues);
        }
示例#29
0
 private void InitializeData()
 {
     DatabaseSourceDefinitor.CreateDatabaseIfNotExist();
     DatabaseSchemaUpdater.Update();
     using (var repository = new LeagueRepository(DatabaseSourceDefinitor.ConnectionString))
     {
         Leagues = repository.GetLeagues();
     }
     if (Leagues.Length > 0)
     {
         int lastSeason = Leagues.Max(t => t.Season);
         League = Leagues.First(t => t.Season == lastSeason);
         Tour   = League.Tours[0];
         using (var repository = new GameRepository(DatabaseSourceDefinitor.ConnectionString))
         {
             GamesInTour = repository.GetGamesInTour(Tour.Id);
         }
         League.Calculate();
         TeamsStat = League.TeamStats;
     }
 }
        /// <summary>
        /// Асинхронный метод получения матчей из нескольких лиг через флаг.
        /// </summary>
        /// <param name="leagues">Перечисление лиг в виде флагов.</param>
        /// <returns>Список матчей указанных лиг.</returns>
        public async Task <List <Match> > GetMatchesOfSomeLeagues(Leagues leagues, DateTime minStartTime, int minH2H)
        {
            List <Match> AllMatches = new List <Match>();

            if (leagues.HasFlag(Leagues.ProLeagueMen))
            {
                AllMatches.AddRange(await GetMatchesOfLeague(Leagues.ProLeagueMen, minStartTime, minH2H));
            }
            if (leagues.HasFlag(Leagues.TTCupMen))
            {
                AllMatches.AddRange(await GetMatchesOfLeague(Leagues.TTCupMen, minStartTime, minH2H));
            }
            if (leagues.HasFlag(Leagues.WinCupMen))
            {
                AllMatches.AddRange(await GetMatchesOfLeague(Leagues.WinCupMen, minStartTime, minH2H));
            }
            if (leagues.HasFlag(Leagues.SetkaCupMen))
            {
                AllMatches.AddRange(await GetMatchesOfLeague(Leagues.SetkaCupMen, minStartTime, minH2H));
            }
            return(AllMatches);
        }
示例#31
0
        private void GenerateSchedule()
        {
            int lastSeasonNumber = Leagues.Length == 0 ? 0 : Leagues.Max(t => t.Season);

            new LeagueModel().GenerateSeason(lastSeasonNumber + 1);
            using (var repository = new LeagueRepository(DatabaseSourceDefinitor.ConnectionString))
            {
                Leagues = repository.GetLeagues();
            }
            if (Leagues.Length > 0)
            {
                int lastSeason = Leagues.Max(t => t.Season);
                League = Leagues.First(t => t.Season == lastSeason);
                Tour   = League.Tours[0];
                using (var repository = new GameRepository(DatabaseSourceDefinitor.ConnectionString))
                {
                    GamesInTour = repository.GetGamesInTour(Tour.Id);
                }
                League.Calculate();
                TeamsStat = League.TeamStats;
            }
        }
        public async Task <Leagues> GetInfoAsync()
        {
            Leagues basketballLeagues = null;
            var     client            = new HttpClient();
            var     request           = new HttpRequestMessage
            {
                Method     = HttpMethod.Get,
                RequestUri = new Uri($"{Config.ApiUrl}/leagues"),
                Headers    =
                {
                    { Config.ApiKeyHeader,  Config.ApiKey  },
                    { Config.ApiHostHeader, Config.ApiHost },
                },
            };
            var response = await client.SendAsync(request);

            if (response.IsSuccessStatusCode)
            {
                basketballLeagues = _serializerService.Deserialize <Leagues>(await response.Content.ReadAsStringAsync());
            }
            return(basketballLeagues);
        }
示例#33
0
        public void Seed()
        {
            var ligaBbva = new Leagues
            {
                Name = "Liga BBVA"
            };

            _session.Save(ligaBbva);

            var ligaPremier = new Leagues
            {
                Name = "Liga Premier Inglesa"
            };

            _session.Save(ligaPremier);

            var ligaItaliana = new Leagues
            {
                Name = "Seria A"
            };

            _session.Save(ligaItaliana);
        }
        /// <summary>
        /// Преобразует объект Enum, в строковое представление.
        /// </summary>
        /// <param name="l">Объект лиги.</param>
        /// <returns>Строковое представление.</returns>
        public static string ToTextString(this Leagues l)
        {
            string UaFlag = "\U0001F1FA\U0001F1E6";
            string RuFlag = "\U0001F1F8\U0001F1EE";

            switch (l)
            {
            case Leagues.ProLeagueMen:
                return($"\" {RuFlag} Лига ПРО {RuFlag} \"");

            case Leagues.TTCupMen:
                return($"\" {UaFlag} TT CUP {UaFlag} \"");

            case Leagues.WinCupMen:
                return($"\"{UaFlag} Win CUP {UaFlag} \"");

            case Leagues.SetkaCupMen:
                return($"\"{UaFlag} Setka Cup {UaFlag} \"");

            default:
                return(string.Empty);
            }
        }
示例#35
0
        private string GetDescription(Leagues league)
        {
            MemberInfo val = league.GetType().GetMember(league.ToString()).Single();

            return val.GetCustomAttribute<DescriptionAttribute>().Description;
        }
示例#36
0
        public List<ITeamResults> GetResults(Leagues league)
        {
            List<ITeamResults> teams = new List<ITeamResults>();

            HtmlDocument doc = new HtmlDocument();

            var stream =
                GetPageStream(GuardianLeagueMappings.GetUriForLeague(league));

            doc.Load(stream, Encoding.UTF8);

            var table = doc.DocumentNode.SelectNodes("//table").FirstOrDefault();

            if (table == null)
            {
                throw new InvalidOperationException("Guardian have changed their site again - can't find table.");
            }

            var body = table.SelectNodes(".//tbody").FirstOrDefault();

            if (body == null)
            {
                throw new InvalidOperationException("Guardian have changed their site again - can't find table body.");
            }

            var rows = body.SelectNodes(".//tr");

            if (rows == null)
            {
                throw new InvalidOperationException("Guardian have changed their site again - can't find rows.");
            }

            foreach (var row in rows)
            {
                CombinedResultSet results = new CombinedResultSet();
                HtmlNodeCollection cells = row.SelectNodes(".//td");

                if (cells == null)
                {
                    throw new InvalidOperationException("Guardian have changed their site again - can't find cells.");
                }

                string team = cells[1].InnerText;
                string link = "Link is broken";

                var spans = cells[1].SelectNodes(".//span");
                var linkCells = spans?.First().SelectNodes(".//a");

                var href = linkCells?.First().Attributes["href"];

                if (href != null)
                {
                    link = string.Concat(root, href.Value);
                }

                /*

                Pos Team 	    P 	W 	D 	L 	F 	A 	GD 	Pts 	Form
                1 	Arsenal 	1 	1 	0 	0 	2 	1 	1 	3

                 <tr class="">
                  <td class="table-column--sub">3</td> <-- TD 0 -->
                  <td class="table-column--main"> <-- TD 1 -->
                    <span class="team-name" data-abbr="ARS">
                      <a href="/football/arsenal" data-link-name="View team" class="team-name__long">
                        Arsenal
                      </a>
                    </span>
                  </td>
                  <td>1</td>  <-- TD 2, played, which is calculated -->
                  <td class="table-column--importance-1">1</td> <-- TD 3 -->
                  <td class="table-column--importance-1">0</td> <-- TD 4 -->
                  <td class="table-column--importance-1">0</td> <-- TD 5 -->
                  <td class="table-column--importance-1">2</td> <-- TD 6 -->
                  <td class="table-column--importance-1">1</td> <-- TD 7 -->
                  <td class="table-column--importance-3">1</td> <-- TD 8 -->
                  <td>
                    <b>3</b>  <-- TD 9 - note b tag -->
                  </td>
                  <td class="table-column--importance-2 football-stat--form team__results--thin"><-- TD 10 - form - TODO -->
                    <div class="team__results">
                      <span class="team-result team-result--won" data-foe="C Palace" data-score="2" data-score-foe="1" title="Won 2-1 against C Palace">
                        <span class="u-h">Won against C Palace</span>
                      </span>
                    </div>
                  </td>
                </tr>
            */
                // ReSharper disable UnusedVariable
                var played = int.Parse(cells[2].InnerText);
                int gd = int.Parse(cells[8].InnerText);
                int points = int.Parse(cells[9].InnerText);
                // ReSharper restore UnusedVariable

                results.Won = int.Parse(cells[3].InnerText);
                results.Drawn = int.Parse(cells[4].InnerText);
                results.Lost = int.Parse(cells[5].InnerText);
                results.GoalsScored = int.Parse(cells[6].InnerText);
                results.GoalsConceded = int.Parse(cells[7].InnerText);

                teams.Add(new CombinedTeamResult(team, link, results));
            }

            teams.Sort(new TeamResultsComparer());

            return teams;
        }