コード例 #1
0
        public void ExecuteUriAndCompare <TResult>(IAsyncContinuation continuation, bool isAsync, string uriString, HttpVerb verb, OperationParameter[] inputParameters, bool singleResult, DataServiceContext dataContext, ExpectedClientErrorBaseline clientExpectedError)
        {
            this.isAsynchronous = isAsync;
            this.ExecuteQueryAction(
                continuation,
                null,
                dataContext,
                clientExpectedError,
                delegate(List <object> entityPayloads, IAsyncContinuation continuation2)
            {
                AsyncHelpers.CatchErrors(
                    continuation2,
                    () =>
                {
                    this.Logger.WriteLine(LogLevel.Verbose, "Executing Invoke Action, async:{0}, Uri:{1}:", isAsync, dataContext.BaseUri + "/" + uriString);
                    Uri builtUri = new Uri(dataContext.BaseUri + "/" + uriString);
#if !SILVERLIGHT
                    EventHandler <SendingRequest2EventArgs> sendingRequest = delegate(object sender, SendingRequest2EventArgs args)
                    {
                        HttpRequestMessage request = ((HttpClientRequestMessage)args.RequestMessage).HttpRequestMessage;
                        this.VerifyActionExecuteHeaders(verb, request.Headers, inputParameters);
                        this.VerifyCommonExecuteHeaders(request.Headers);
                    };

                    dataContext.SendingRequest2 += sendingRequest;
#endif
                    dataContext.ExecuteUri <TResult>(
                        continuation2,
                        isAsync,
                        builtUri,
                        verb,
                        inputParameters,
                        singleResult,
                        delegate(QueryOperationResponse <TResult> results)
                    {
                        var savedRes = results.ToList();
                        if (singleResult)
                        {
                            // With singleResult=true, we expected 0/1 result item. Compare() will calculate and update the expected QueryValue to be non-NullValue.
                            this.Compare(this.expressionQueue.Peek().ExpressionType.NullValue, () => savedRes.SingleOrDefault(), dataContext);
                        }
                        else
                        {
                            // With singleResult=false, we expected multiple result items. Compare() will calculate and update the expected QueryValue to be non-NullValue.
                            this.Compare(this.expressionQueue.Peek().ExpressionType.NullValue, () => savedRes, dataContext);
                        }

                        dataContext.SendingRequest2 -= sendingRequest;

                        continuation2.Continue();
                    });
                });
            });
        }
コード例 #2
0
        public void ExecuteUriAndCompare(IAsyncContinuation continuation, bool isAsync, string uriString, HttpVerb verb, OperationParameter[] inputParameters, DataServiceContext dataContext, ExpectedClientErrorBaseline clientExpectedError)
        {
            this.isAsynchronous = isAsync;
            this.ExecuteQueryAction(
                continuation,
                null,
                dataContext,
                clientExpectedError,
                delegate(List <object> entityPayloads, IAsyncContinuation continuation2)
            {
                AsyncHelpers.CatchErrors(
                    continuation2,
                    () =>
                {
                    this.Logger.WriteLine(LogLevel.Verbose, "Executing Invoke Action, async:{0}, Uri:{1}:", isAsync, dataContext.BaseUri + "/" + uriString);

                    Uri builtUri = new Uri(dataContext.BaseUri + "/" + uriString);
#if !SILVERLIGHT
                    EventHandler <SendingRequest2EventArgs> sendingRequest = delegate(object sender, SendingRequest2EventArgs args)
                    {
                        HttpWebRequest request = ((HttpWebRequestMessage)args.RequestMessage).HttpWebRequest;
                        this.VerifyActionExecuteHeaders(verb, request.Headers, inputParameters);
                        this.VerifyCommonExecuteHeaders(request.Headers);
                    };

                    dataContext.SendingRequest2 += sendingRequest;
#endif
                    dataContext.ExecuteUri(
                        continuation2,
                        isAsync,
                        builtUri,
                        verb,
                        inputParameters,
                        delegate
                    {
#if !SILVERLIGHT
                        dataContext.SendingRequest2 -= sendingRequest;
#endif
                        continuation2.Continue();
                    });
                });
            });
        }