private long GetUnitSize(PTurnData pTurnData) { var uSize = pTurnData.ActiveCards.Length + pTurnData.InactiveCards.Length + pTurnData.PrevTurns.Length + pTurnData.Hand.Length + pTurnData.FacedUpCards.Length; return(uSize); }
private PTurnData[] GetPTurnData(XmlDocument xmlDoc) { if (xmlDoc == null) { throw new ArgumentNullException(); } var ptdList = new List <PTurnData>(); var winnerId = xmlDoc.DocumentElement.GetAttribute(XmlDataFileNodeNames.PlayerIdAttr); var rounds = xmlDoc.DocumentElement.ChildNodes; if (string.IsNullOrWhiteSpace(winnerId)) { throw new InvalidOperationException(); } foreach (XmlNode rd in rounds) { foreach (XmlElement td in rd.ChildNodes) { var nodes = td.ChildNodes; var playerId = td.GetAttribute(XmlDataFileNodeNames.PlayerIdAttr); if (playerId != winnerId) { continue; } if (nodes.Count != 5 || string.IsNullOrWhiteSpace(playerId)) { throw new InvalidOperationException(); } var facedUpCardsElm = nodes[0] ?? throw new InvalidOperationException(); var handElm = nodes[1] ?? throw new InvalidOperationException(); var prevTurnsElm = nodes[2] ?? throw new InvalidOperationException(); var activeCardsElm = nodes[3] ?? throw new InvalidOperationException(); var inactiveCardsElm = nodes[4] ?? throw new InvalidOperationException(); var ptd = new PTurnData { FacedUpCards = facedUpCardsElm.InnerXml, Hand = handElm.InnerXml, PrevTurns = prevTurnsElm.InnerXml, ActiveCards = activeCardsElm.InnerXml, InactiveCards = inactiveCardsElm.InnerXml }; ptdList.Add(ptd); } } return(ptdList.ToArray()); }