private static IDictionary <string, XmlRpcValue> ReadMembers(IEnumerable <XElement> memberElements, IValueReaders readers) { return(memberElements .ToDictionary(me => me.Element(XmlRpcTags.Name)?.Value, me => ReadMemberValue(me.Element(XmlRpcTags.Value), readers))); }
private static XmlRpcValue CreateValue(XNode valueNode, IValueReaders readers) { var valueElements = valueNode.XPathSelectElements(XmlRpcTags.Data + "/" + XmlRpcTags.Value); var values = GetValues(valueElements, readers); return new ArrayValue(values.ToArray()); }
private static XmlRpcValue CreateValue(XNode valueNode, IValueReaders readers) { var memberElements = valueNode.XPathSelectElements(XmlRpcTags.Member); var structDictionary = ReadMembers(memberElements, readers); return(new StructValue(structDictionary)); }
protected ModelReaderBase(IValueReaders readers) { Ensure.IsNotNull(readers, nameof(readers)); _readers = readers; }
public RequestModelReader(IValueReaders valueReaders) : base(valueReaders) { }
private static IEnumerable<XmlRpcValue> GetValues(IEnumerable<XElement> valueElements, IValueReaders readers) { return valueElements.Select(readers.ReadValue); }
public ArrayValueReader(IValueReaders readers) : base(new []{XmlRpcTags.Array}, valueElement => CreateValue(valueElement, readers)) { }
private static XmlRpcValue ReadMemberValue(XElement memberValueElement, IValueReaders readers) { return(readers.ReadValue(memberValueElement)); }
public StructValueReader(IValueReaders readers) : base(new [] { XmlRpcTags.Struct }, valueElement => CreateValue(valueElement, readers)) { }
public ResponseModelReader(IValueReaders readers) : base(readers) { }