public TokenChain(string chain) { string regex; if (chain.StartsWith("(")) { if (chain.EndsWith(")")) { ChainPosition = TokenChainPosition.OpenAndClose; regex = @"\((\d+)\)"; } else { ChainPosition = TokenChainPosition.Open; regex = @"\((\d+)"; } } else { ChainPosition = TokenChainPosition.Close; regex = @"(\d+)\)"; } Match match = new Regex(regex).Match(chain); this.ChainNumber = int.Parse(match.Groups[1].ToString()); }
private void OpenAndCloseChain(int chainNumber, TokenChainPosition chainPosition) { TokenChain tokenChain = Chains.Single(x => x.ChainNumber == chainNumber); if (tokenChain.ChainPosition == chainPosition) { throw new Exception("Unable to open and close chain"); } tokenChain.OpenAndCloseChain(); }
public void AddChain(int chainNumber, TokenChainPosition chainPosition) { if (Chains.Any(x => x.ChainNumber == chainNumber)) { OpenAndCloseChain(chainNumber, chainPosition); } else { Chains.Add(new TokenChain(chainNumber, chainPosition)); } }
public void OpenAndCloseChain() { ChainPosition = TokenChainPosition.OpenAndClose; }
public TokenChain(int chainNumber, TokenChainPosition chainPosition) { this.ChainNumber = chainNumber; this.ChainPosition = chainPosition; }
public void AddTokenChain(int chainNumber, TokenChainPosition chainPosition) { Chains.AddChain(chainNumber, chainPosition); }