Exemplo n.º 1
0
        private static void ParseScorecard(FileStore dataStore, ScorecardDetails md)
        {
            CricketMatch m = dataStore.Load<CricketMatch>(CricketMatch.GenerateId(md.Season, md.MatchCode));
            if (m != null)
            {
                Log.InfoFormat("Match {0} ({1}) has already been imported", md.MatchCode, m);
                return;
            }

            Log.InfoFormat("Parsing scorecard for {0}", md);

            string scorecard = dataStore.LoadText(md.GenerateScorecardKey(), "html");
            if (string.IsNullOrEmpty(scorecard))
                return;

            DependencyFinder finder = new DependencyFinder(dataStore);
            ScorecardParser parser = new ScorecardParser(md, finder);
            parser.Parse(scorecard);

            CricketMatch match = parser.Match;

            dataStore.Save(match, match.Id);

            Log.Info(match.ToLongString());
        }
Exemplo n.º 2
0
 protected static string FormatValue(ScorecardDetails value, int length)
 {
     string asString = value.ToString();
     asString = Regex.Replace(asString, "\\s+", " ");
     if (asString.Length <= length)
         return asString.PadRight(length);
     return asString.Substring(0, length);
 }
Exemplo n.º 3
0
 public ScorecardParser(ScorecardDetails details, DependencyFinder finder)
 {
     _finder = finder;
     _match = new CricketMatch
                  {
                      Id = CricketMatch.GenerateId(details.Season, details.MatchCode),
                      MatchCode = details.MatchCode,
                      HomeTeam = details.HomeTeam,
                      AwayTeam = details.AwayTeam,
                      Season = details.Season,
                      StartDate = details.Date,
                      Players = "11 per side",
                      Innings = new List<Innings>()
                  };
 }
Exemplo n.º 4
0
        private static void SaveScorecard(ScorecardDetails details, Task<string> task, FileStore dataStore)
        {
            if (task.Exception != null)
            {
                Log.Error(string.Format("Failed to download file from http://www.cricketarchive.com{0}", details.ScorecardUrl),
                          task.Exception);
                return;
            }

            string scorecard = task.Result;
            if (string.IsNullOrEmpty(scorecard))
            {
                Log.WarnFormat("Nothing returned from http://www.cricketarchive.com{0}", details.ScorecardUrl);
                return;
            }

            dataStore.StoreText(scorecard, details.GenerateScorecardKey(), "html");
        }
Exemplo n.º 5
0
        public override bool Equals(object obj)
        {
            ScorecardDetails md = obj as ScorecardDetails;

            if (md == null)
            {
                return(false);
            }

            if (MatchCode == md.MatchCode && !string.IsNullOrWhiteSpace(MatchCode))
            {
                return(true);
            }
            if (!string.IsNullOrWhiteSpace(MatchCode) && !string.IsNullOrWhiteSpace(md.MatchCode))
            {
                return(MatchCode == md.MatchCode);
            }

            return(Date == md.Date && HomeTeam == md.HomeTeam && AwayTeam == md.AwayTeam);
        }
Exemplo n.º 6
0
 private static Task DownloadScorecardAsync(ScorecardDetails details, FileStore dataStore)
 {
     Log.InfoFormat("Fetching URL {0}", details.ScorecardUrl);
     return Task.Factory.StartNew(() => WebClient.FetchWebPageContent(details.ScorecardUrl))
                        .ContinueWith(t => SaveScorecard(details, t, dataStore));
 }