Exemple #1
0
        private static Soap12FaultSubcode DeserializeFaultCodeSubcode(XmlReader reader, int depth)
        {
            var faultSubcode = new Soap12FaultSubcode();

            if (reader.IsEmptyElement || !reader.MoveToElement(depth, faultCodeValueName))
            {
                throw new InvalidQueryException($"SOAP 1.2 Fault Subcode must have `{faultCodeValueName}` element.");
            }
            faultSubcode.Value = reader.ReadElementContentAsString();

            var success = reader.MoveToElement(depth);

            if (success && reader.IsCurrentElement(depth, faultCodeSubcodeName))
            {
                faultSubcode.Subcode = DeserializeFaultCodeSubcode(reader, depth + 1);
                success = reader.MoveToElement(depth);
            }

            if (success)
            {
                throw new InvalidQueryException($"Unexpected element `{reader.GetXName()}` in SOAP 1.2 Fault Subcode element.");
            }

            return(faultSubcode);
        }
Exemple #2
0
        private static void WriteSoapFaultSubcode(XmlWriter writer, Soap12FaultSubcode subcode)
        {
            if (subcode == null)
            {
                return;
            }

            writer.WriteStartElement("Subcode", @namespace);

            writer.WriteStartElement("Value", @namespace);
            writer.WriteString(subcode.Value);
            writer.WriteEndElement();

            WriteSoapFaultSubcode(writer, subcode.Subcode);

            writer.WriteEndElement();
        }