Exemplo n.º 1
0
        public RBNArticle Parse(StreamReader rbnStream)
        {
            RBNArticle article = new RBNArticle();

            RBNHands   currentHands   = null;
            RBNAuction currentAuction = null;
            string     line;

            while ((line = rbnStream.ReadLine()) != null)
            {
                RBNLine rbnLine = RBNLineMapper.GetRBNLine(line);
                if (rbnLine != null)
                {
                    switch (rbnLine.GetRBNLineType())
                    {
                    case RBNLineType.Hands:
                        currentHands = (RBNHands)rbnLine;
                        article.Add(rbnLine);
                        break;

                    case RBNLineType.Auction:
                        currentAuction = (RBNAuction)rbnLine;
                        if (currentHands != null)
                        {
                            currentHands.Vulnerability = currentAuction.Vulnerability;
                            currentHands.Dealer        = currentAuction.Auction.Dealer;
                        }
                        article.Add(rbnLine);
                        break;

                    case RBNLineType.BidExplanation:
                        if (currentAuction != null)
                        {
                            currentAuction.Auction.Explanations
                            .Add(((RBNBidExplanation)rbnLine).Explanation);
                        }
                        break;

                    default:
                        article.Add(rbnLine);
                        break;
                    }
                }
            }
            return(article);
        }
Exemplo n.º 2
0
        public void Add(RBNLine line)
        {
            if (line == null)
            {
                return;
            }

            RBNLineType type = line.GetRBNLineType();

            switch (type)
            {
            case RBNLineType.TitleAndAuthor:
                RBNTitleAndAuthor ta = (RBNTitleAndAuthor)line;
                Author = ta.Author;
                Title  = ta.Title;
                return;

            default:
                Lines.Add(line);
                break;
            }
        }