public SmsPayload Parse() { var payload = new SmsPayload(); while (_reader.Read()) { switch (_reader.NodeType) { case XmlNodeType.Element: HandleRequestElementStart(payload); HandleRecipientElementStart(); HandleSenderElementStart(); HandleIdElementStart(); HandleTextElementStart(); break; case XmlNodeType.Text: HandleText(payload); break; case XmlNodeType.EndElement: HandleRecipientElementEnd(); HandleSenderElementEnd(); HandleIdElementEnd(); HandleTextElementEnd(); break; } } return payload; }
private void HandleRequestElementStart(SmsPayload payload) { if (_reader.Name == "request") { payload.Operation = _reader.GetAttribute("type"); } }
private void HandleText(SmsPayload payload) { if (_inSenderElement && _isIdElement) { payload.SenderPhoneNumber = _reader.Value.Trim(); return; } if (_isRecipientElement && _isIdElement) { payload.RecipientPhoneNumber = _reader.Value.Trim(); } if (_isTextElement) { payload.SenderText = _reader.Value; } }