Esempio n. 1
0
        private IEnumerable <GameInfo> CollectGames()
        {
            ExtractParserStatus status = ExtractParserStatus.LookingForCardDrops;
            string line;

            int cardDropsRemaining = 0;

            while ((line = Console.ReadLine()) != null)
            {
                if (status == ExtractParserStatus.LookingForCardDrops)
                {
                    Regex dropsRemaining = new Regex("([0-9]+) card drops? remaining");
                    if (dropsRemaining.IsMatch(line))
                    {
                        cardDropsRemaining = int.Parse(dropsRemaining.Match(line).Groups[1].Value);
                        status             = ExtractParserStatus.LookingForGameName;
                        continue;
                    }
                }
                if (status == ExtractParserStatus.LookingForGameName)
                {
                    status = ExtractParserStatus.LookingForCardDrops;
                    yield return(new GameInfo()
                    {
                        Name = line.Trim(),
                        CardsRemaining = cardDropsRemaining
                    });
                }
            }
        }
Esempio n. 2
0
        internal IEnumerable <GameInfo> CollectGames(IEnumerable <string> lines)
        {
            ExtractParserStatus status = ExtractParserStatus.LookingForCardDrops;

            int cardDropsRemaining = 0;

            foreach (var line in lines)
            {
                if (status == ExtractParserStatus.LookingForCardDrops)
                {
                    Regex dropsRemaining = new Regex("([0-9]+) card drops? remaining");
                    if (dropsRemaining.IsMatch(line))
                    {
                        cardDropsRemaining = int.Parse(dropsRemaining.Match(line).Groups[1].Value);
                        status             = ExtractParserStatus.LookingForGameName;
                        continue;
                    }
                }
                if (status == ExtractParserStatus.LookingForGameName)
                {
                    status = ExtractParserStatus.LookingForCardDrops;
                    yield return(new GameInfo()
                    {
                        Name = line.Trim(),
                        CardsRemaining = cardDropsRemaining
                    });
                }
            }
        }