/// <summary>
        /// Process the incoming request and forms a formatted outgoing response.
        /// </summary>
        /// <param name="incomingRequest">Incoming request</param>
        /// <returns>Message instance containing the outgoing response</returns>
        public Message ProcessRequest(Request incomingRequest)
        {
            _baseUri = _serviceHost.ServiceBaseUri;

            _responseSerializationFormat = incomingRequest.ResponseSerializationFormat;

            // Check and fire request interceptor.
            if (_configuration.HasRequestInterceptors(this._scopeName, SyncOperations.Download))
            {
                // Init the SyncOperationContext
                this.InitRequestOperationContext();

                // Fire the request Interceptors if any
                base.ProcessRequestInterceptors();
            }

            IAsymmetricProviderService providerService =
                new SqlSyncProviderService(_configuration,
                                           Convert.ToString(incomingRequest.CommandParams[CommandParamType.ScopeName]),
                                           incomingRequest.ProviderParams,
                                           base._operationContext);

            _getChangesResponse = providerService.GetChanges(incomingRequest.SyncBlob);

            // Check and fire response interceptor.
            this.PrepareAndProcessResponseInterceptors();

            var oDataWriter = GetSyncWriterWithContents();

            return(base.CreateResponseMessage(incomingRequest.ResponseSerializationFormat, oDataWriter));
        }
        /// <summary>
        /// Process the incoming request and forms a formatted outgoing response.
        /// </summary>
        /// <param name="incomingRequest">Incoming request</param>
        /// <returns>Message instance containing the outgoing response</returns>
        public Message ProcessRequest(Request incomingRequest)
        {
            _baseUri = _serviceHost.ServiceBaseUri;

            _responseSerializationFormat = incomingRequest.ResponseSerializationFormat;

            // Check and fire request interceptor.
            if (_configuration.HasRequestInterceptors(this._scopeName, SyncOperations.Download))
            {
                // Init the SyncOperationContext
                this.InitRequestOperationContext();

                // Fire the request Interceptors if any
                base.ProcessRequestInterceptors();
            }

            SqlSyncProviderService providerService =
                new SqlSyncProviderService(_configuration,
                                           Convert.ToString(incomingRequest.CommandParams[CommandParamType.ScopeName]),
                                           incomingRequest.ProviderParams, 
                                           base._operationContext);

            _getChangesResponse = providerService.GetChanges(incomingRequest.SyncBlob);

            // Check and fire response interceptor.
            this.PrepareAndProcessResponseInterceptors();

            var oDataWriter = GetSyncWriterWithContents();

            return base.CreateResponseMessage(incomingRequest.ResponseSerializationFormat, oDataWriter);
        }