/// <summary> /// Handles the SOAP message. /// </summary> /// <param name="soapMessage">The SOAP message.</param> /// <param name="service">The SOAP service.</param> /// <param name="direction">The direction of message.</param> public override void HandleMessage(XmlDocument soapMessage, AdsClient service, SoapListener.Direction direction) { if (direction == Direction.IN) { RecordApiUnitCost(GetApiUnitsForCall(soapMessage), service); } }
/// <summary> /// Calls the listeners. /// </summary> /// <param name="direction">The direction of SOAP message.</param> private void CallListeners(SoapListener.Direction direction) { XmlDocument document = SerializationUtilities.LoadXml(Encoding.UTF8.GetString( newStream.ToArray())); AdsClient service = (AdsClient) ContextStore.GetValue("SoapService"); if (service != null) { service.User.CallListeners(document, service, direction); } byte[] bytes = Encoding.UTF8.GetBytes(document.OuterXml); newStream.SetLength(0); newStream.Write(bytes, 0, bytes.Length); newStream.Seek(0, SeekOrigin.Begin); }
/// <summary> /// Calls the SOAP listeners. /// </summary> /// <param name="document">The SOAP message as an xml document.</param> /// <param name="service">The service for which call is being made.</param> /// <param name="direction">The direction of SOAP message.</param> internal void CallListeners(XmlDocument document, AdsClient service, SoapListener.Direction direction) { foreach (SoapListener listener in listeners) { listener.HandleMessage(document, service, direction); } }