/// <summary> /// Handles the message. /// </summary> /// <param name="soapMessage">The SOAP message.</param> /// <param name="service">The service.</param> /// <param name="direction">The direction.</param> public void HandleMessage(XmlDocument soapMessage, AdsClient service, SoapMessageDirection direction) { XmlNamespaceManager xmlnt = new XmlNamespaceManager(soapMessage.NameTable); xmlnt.AddNamespace(SOAP_PREFIX, SOAP_NAMESPACE); if (direction == SoapMessageDirection.OUT) { UserToken token = (UserToken)ContextStore.GetValue("Token"); RequestHeader requestHeader = (RequestHeader)ContextStore.GetValue("RequestHeader"); if (token != null || requestHeader != null) { XmlElement soapHeader = GetSoapHeaderNode(soapMessage, xmlnt, true); if (token != null) { AddSecurityHeader(soapHeader, token); } if (requestHeader != null) { AddRequestHeader(soapHeader, requestHeader); } } } else { ContextStore.AddKey("ResponseHeader", ParseResponseHeader(soapMessage, xmlnt)); } }
/// <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, SoapMessageDirection direction) { foreach (SoapListener listener in listeners) { listener.HandleMessage(document, service, direction); } }
/// <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 void HandleMessage(XmlDocument soapMessage, AdsClient service, SoapMessageDirection direction) { if (direction == SoapMessageDirection.IN) { AdWordsUser user = service.User as AdWordsUser; string methodName = (string)ContextStore.GetValue("SoapMethod"); RecordApiOperationCount(user, service, methodName, GetApiUnitsForCall(soapMessage)); } }
/// <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 void HandleMessage(XmlDocument soapMessage, AdsClient service, SoapMessageDirection direction) { if (direction == SoapMessageDirection.OUT) { ContextStore.AddKey("SoapRequest", soapMessage.OuterXml); } else { ContextStore.AddKey("SoapResponse", soapMessage.OuterXml); } if (direction == SoapMessageDirection.IN) { PerformLogging(service, (string) ContextStore.GetValue("SoapRequest"), (string) ContextStore.GetValue("SoapResponse")); } }
/// <summary> /// Calls the listeners. /// </summary> /// <param name="direction">The direction of SOAP message.</param> private void CallListeners(SoapMessageDirection 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> /// 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 void HandleMessage(XmlDocument soapMessage, AdsClient service, SoapMessageDirection direction) { if (direction == SoapMessageDirection.OUT) { ContextStore.AddKey("SoapRequest", soapMessage.OuterXml); } else { ContextStore.AddKey("SoapResponse", soapMessage.OuterXml); } if (direction == SoapMessageDirection.IN) { PerformLogging(service, (string)ContextStore.GetValue("SoapRequest"), (string)ContextStore.GetValue("SoapResponse")); } }
/// <summary> /// Handles the message. /// </summary> /// <param name="soapMessage">The SOAP message.</param> /// <param name="service">The service.</param> /// <param name="direction">The direction.</param> public void HandleMessage(XmlDocument soapMessage, AdsClient service, SoapMessageDirection direction) { XmlNamespaceManager xmlnt = new XmlNamespaceManager(soapMessage.NameTable); xmlnt.AddNamespace(SOAP_PREFIX, SOAP_NAMESPACE); if (direction == SoapMessageDirection.OUT) { UserToken token = (UserToken) ContextStore.GetValue("Token"); RequestHeader requestHeader = (RequestHeader) ContextStore.GetValue("RequestHeader"); if (token != null || requestHeader != null) { XmlElement soapHeader = GetSoapHeaderNode(soapMessage, xmlnt, true); if (token != null) { AddSecurityHeader(soapHeader, token); } if (requestHeader != null) { AddRequestHeader(soapHeader, requestHeader); } } } else { ContextStore.AddKey("ResponseHeader", ParseResponseHeader(soapMessage, xmlnt)); } }
/// <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, SoapMessageDirection direction) { foreach (SoapListener listener in listeners) { listener.HandleMessage(document, service, direction); } }
/// <summary> /// Calls the listeners. /// </summary> /// <param name="direction">The direction of SOAP message.</param> private void CallListeners(SoapMessageDirection 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> /// 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 void HandleMessage(XmlDocument soapMessage, AdsClient service, SoapMessageDirection direction) { if (direction == SoapMessageDirection.IN) { AdWordsUser user = service.User as AdWordsUser; string methodName = (string) ContextStore.GetValue("SoapMethod"); RecordApiOperationCount(user, service, methodName, GetApiUnitsForCall(soapMessage)); } }