private static bool ReadPropertyValue(XmlReader reader, IPropertyMap propertyMap, IXmlTemplateNode templateNode, XRoadMessage message, bool validateRequired, T dtoObject) { var templateName = propertyMap.Definition.TemplateName; var propertyNode = templateNode[templateName, message.Version]; if (propertyNode == null) { reader.ConsumeUnusedElement(); return(false); } var isNull = reader.IsNilElement(); if (validateRequired && isNull && propertyNode.IsRequired) { throw XRoadException.MissingRequiredPropertyValues(Enumerable.Repeat(propertyMap.Definition.Content.Name.LocalName, 1)); } if ((isNull || propertyMap.Deserialize(reader, dtoObject, propertyNode, message)) && !string.IsNullOrWhiteSpace(templateName)) { dtoObject.OnMemberDeserialized(templateName); } reader.ConsumeNilElement(isNull); return(propertyNode.IsRequired); }
private void ReadPropertyValue(XmlReader reader, IPropertyMap propertyMap, IXmlTemplateNode propertyNode, XRoadMessage message, bool validateRequired, T dtoObject) { if (propertyNode == null) { reader.ConsumeUnusedElement(); return; } var isNull = reader.IsNilElement(); if (validateRequired && isNull && propertyNode.IsRequired) { throw new ParameterRequiredException(Definition, propertyMap.Definition); } var templateName = propertyMap.Definition.TemplateName; if ((isNull || propertyMap.Deserialize(reader, dtoObject, propertyNode, message)) && !string.IsNullOrWhiteSpace(templateName)) { dtoObject.OnMemberDeserialized(templateName); } reader.ConsumeNilElement(isNull); }