private static void WriteMember(string name, XmlRpcValue value, IValueWriters writers, XElement element) { var writer = writers.GetWriter(value.GetType()); var nameElement = new XElement(XmlRpcTags.Name); nameElement.Add(name); element.Add(nameElement); writer.WriteTo(element, value); }
protected ModelWriterBase(IValueWriters writers) { Ensure.IsNotNull(writers, nameof(writers)); Writers = writers; }
public ArrayValueWriter(IValueWriters writers) : base(XmlRpcTags.Array, (value, element) => WriteToElement(value, element, writers)) { }
private static void WriteElement(XmlRpcValue value, XElement dataElement, IValueWriters writers) { var writer = writers.GetWriter(value.GetType()); writer?.WriteTo(dataElement, value); }
private static void WriteToElements(IEnumerable <XmlRpcValue> array, XElement dataElement, IValueWriters writers) { array.ForEach(value => WriteElement(value, dataElement, writers)); }
private static void WriteToElement(XmlRpcValue <IEnumerable <XmlRpcValue> > value, XContainer element, IValueWriters writers) { var dataElement = new XElement(XmlRpcTags.Data); WriteToElements(value.Value, dataElement, writers); element.Add(dataElement); }
public StructValueWriter(IValueWriters writers) : base(XmlRpcTags.Struct, (value, element) => WriteToElement(value, element, writers)) { }
private static void WriteToElement(XmlRpcValue <IDictionary <string, XmlRpcValue> > value, XContainer element, IValueWriters writers) { foreach (var(key, xmlRpcValue) in value.Value) { var memberElement = new XElement(XmlRpcTags.Member); WriteMember(key, xmlRpcValue, writers, memberElement); element.Add(memberElement); } }
public RequestModelWriter(IValueWriters writers) : base(writers) { }
public ResponseModelWriter(IValueWriters writers) : base(writers) { }