コード例 #1
0
        /// <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));
            }
        }
コード例 #2
0
 /// <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);
     }
 }
コード例 #3
0
 /// <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));
     }
 }
コード例 #4
0
 /// <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"));
   }
 }
コード例 #5
0
        /// <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);
        }
コード例 #6
0
 /// <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"));
     }
 }
コード例 #7
0
        /// <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));
              }
        }
コード例 #8
0
 /// <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);
   }
 }
コード例 #9
0
    /// <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);
    }
コード例 #10
0
 /// <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));
   }
 }