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; } }
public static RBNLine GetRBNLine(string rbn) { if (rbn == null || rbn.Length < 2) { return(null); } char firstChar = rbn[0]; string value = rbn.Substring(2); RBNLineType type = RBNLineTypeMapper.GetRBNLineType(firstChar); RBNLine rbnLine = null; switch (type) { case RBNLineType.TitleAndAuthor: rbnLine = new RBNTitleAndAuthor(); break; case RBNLineType.Hands: rbnLine = new RBNHands(); break; case RBNLineType.Text: value = rbn; rbnLine = new RBNText(); break; case RBNLineType.Pause: rbnLine = new RBNPause(); break; case RBNLineType.ContractAndDeclarer: rbnLine = new RBNContractAndDeclarer(); break; case RBNLineType.Auction: rbnLine = new RBNAuction(); break; case RBNLineType.BidExplanation: rbnLine = new RBNBidExplanation(); break; default: break; /* TODO: * case DateAndTime: * case Location: * case EventOrMainHeading: * case SessionStageOrSubheading: * case FormOfScoring: * case TeamNamesAndCarryovers: * case NamesOfPlayersAndRoomOrTable: * case BoardNumber: * case PlaySequence: * case ResultTricksWonAndScore: * case InstantAwards: * case MakesAtDoubleDummy: */ } if (rbnLine != null) { rbnLine.ParseRBNstring(value); } return(rbnLine); }
public static char GetChar(RBNLineType type) { switch (type) { case RBNLineType.TitleAndAuthor: return('T'); case RBNLineType.DateAndTime: return('D'); case RBNLineType.Location: return('L'); case RBNLineType.EventOrMainHeading: return('E'); case RBNLineType.SessionStageOrSubheading: return('S'); case RBNLineType.FormOfScoring: return('F'); case RBNLineType.TeamNamesAndCarryovers: return('K'); case RBNLineType.NamesOfPlayersAndRoomOrTable: return('N'); case RBNLineType.BoardNumber: return('B'); case RBNLineType.Hands: return('H'); case RBNLineType.Auction: return('A'); case RBNLineType.ContractAndDeclarer: return('C'); case RBNLineType.PlaySequence: return('P'); case RBNLineType.ResultTricksWonAndScore: return('R'); case RBNLineType.InstantAwards: return('I'); case RBNLineType.MakesAtDoubleDummy: return('M'); case RBNLineType.Pause: return('Q'); case RBNLineType.BidExplanation: return('*'); default: return(' '); } }