Ejemplo n.º 1
0
        static HowOutFactory()
        {
            _registry = new Dictionary <string, IHowOut>();

            foreach (Type t in Assembly.GetExecutingAssembly().GetTypes())
            {
                Type iface = t.GetInterface("Spider.Domain.HowOut.IHowOut");
                if (iface != null)
                {
                    IHowOut ho = (IHowOut)Activator.CreateInstance(t);
                    _registry.Add(ho.ScorecardMatch, ho);
                }
            }
        }
Ejemplo n.º 2
0
        private static void ProcessHowOut(HtmlNode cell, BatsmanInnings innings)
        {
            List <string>      players     = new List <string>();
            HtmlNodeCollection playerNodes = cell.SelectNodes("./a");

            if (playerNodes != null && playerNodes.Count > 0)
            {
                players.AddRange(cell.SelectNodes("./a").Select(FindPlayerId));
            }

            IHowOut howOut = HowOutFactory.GetHowOut(GetTrimmedInnerText(cell.FirstChild));

            innings.HowOut    = howOut.HowOutType;
            innings.IsInnings = howOut.IsInnings;
            innings.IsOut     = howOut.IsOut;
            if (howOut.HasFielder)
            {
                innings.FielderId = howOut.GetFielder(players);
            }
            if (howOut.HasBowler)
            {
                innings.BowlerId = howOut.GetBowler(players);
            }
        }