/// <summary>
        /// Process the $metadata request and return the xml description as per the sync protocol specification.
        /// </summary>
        /// <param name="incomingRequest">incoming request object.</param>
        /// <returns>WCF Message object that contains the output xml.</returns>
        public Message ProcessRequest(Request incomingRequest)
        {
            Debug.Assert(null != _configuration.ScopeNames);
            Debug.Assert(_configuration.ScopeNames.Count > 0);

            XDocument document = GetMetadataDocument();

            return(WebUtil.CreateResponseMessage(document));
        }
        /// <summary>
        /// Process the GetScopes ($syncscopes) request and return the xml description as per the sync protocol specification.
        /// </summary>
        /// <param name="incomingRequest">incoming request object.</param>
        /// <returns>WCF Message object that contains the output xml.</returns>
        public Message ProcessRequest(Request incomingRequest)
        {
            Debug.Assert(null != _configuration.ScopeNames);
            Debug.Assert(_configuration.ScopeNames.Count > 0);
            Debug.Assert(null != incomingRequest);

            _incomingRequest = incomingRequest;

            // We currently support only 1 scope, so read it.
            XDocument document = GetScopeListInfo();

            return(WebUtil.CreateResponseMessage(document));
        }