Example #1
0
        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);
        }
Example #2
0
        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);
        }