private Task<IServiceFilterResponse> Log(IServiceFilterRequest request, IServiceFilterContinuation next) { //Test.Log(" >>> {0} {1} {2}", request.Method, request.Uri, request.Content); //IServiceFilterResponse response = await next.Handle(request).AsTask(); //Test.Log(" <<< {0} {1} {2}", response.StatusCode, response.StatusDescription, response.Content); return next.Handle (request);; }
public Task<IServiceFilterResponse> Handle(IServiceFilterRequest request, IServiceFilterContinuation continuation) { Request = request; var tcs = new TaskCompletionSource<IServiceFilterResponse>(); tcs.SetResult (Response); return tcs.Task; }
/// <summary> /// Initializes a new instance of the ComposedContinuation class. /// </summary> /// <param name="filter">The filter to compose.</param> /// <param name="next">The continuation to compose.</param> public ComposedContinuation(IServiceFilter filter, IServiceFilterContinuation next) { Debug.Assert(filter != null, "filter cannot be null!"); Debug.Assert(next != null, "next cannot be null!"); this.Filter = filter; this.Next = next; }
public Task<IServiceFilterResponse> Handle(IServiceFilterRequest request, IServiceFilterContinuation continuation) { Request = request; //return Task.FromResult<IServiceFilterResponse>(Response).AsAsyncOperation(); var tcs = new TaskCompletionSource<IServiceFilterResponse>(); tcs.SetResult(Response); return tcs.Task; }
/// <summary> /// Handle an HTTP request and its corresponding response by applying /// the first filter and then the second filter. /// </summary> /// <param name="request">The HTTP request.</param> /// <param name="next"> /// The next operation in the HTTP pipeline to continue with. /// </param> /// <returns>The HTTP response.</returns> public IAsyncOperation<IServiceFilterResponse> Handle(IServiceFilterRequest request, IServiceFilterContinuation next) { if (request == null) { throw new ArgumentNullException("request"); } else if (next == null) { throw new ArgumentNullException("next"); } // Second(First(next(request)) return this.Second.Handle(request, new ComposedContinuation(this.First, next)); }
public IAsyncOperation<IServiceFilterResponse> Handle(IServiceFilterRequest request, IServiceFilterContinuation continuation) { // Add master key to the request's header to have admin level control request.Headers["X-ZUMO-MASTER"] = this.masterKey; if (this.disableScripts) { // Get the request's query and append noScript=true as the first query parameter var uriBuilder = new UriBuilder(request.Uri); var oldQuery = (uriBuilder.Query ?? string.Empty).Trim('?'); uriBuilder.Query = ("noScript=true&" + oldQuery).Trim('&'); request.Uri = uriBuilder.Uri; } return continuation.Handle(request); }
public IAsyncOperation<IServiceFilterResponse> Handle(IServiceFilterRequest request, IServiceFilterContinuation continuation) { // Get previous uri query var uriBuilder = new UriBuilder(request.Uri); var oldQuery = (uriBuilder.Query ?? string.Empty).Trim('?'); // Build new query starting with our custom parameters before old query var stringBuilder = new StringBuilder(); foreach (var parameter in parameters) { // Currently using ToString on the value, an improvement will be to serialize the object properly stringBuilder.AppendFormat("{0}={1}&", parameter.Key, parameter.Value); } stringBuilder.Append(oldQuery); // Apply new query to request uri uriBuilder.Query = stringBuilder.ToString().Trim('&'); request.Uri = uriBuilder.Uri; return continuation.Handle(request); }
private async Task<IServiceFilterResponse> HandleAsync(IServiceFilterRequest request, IServiceFilterContinuation continuation) { int ic = _callCount; bool invokeBusy = false; lock (_countLock) { if (_callCount == 0) { invokeBusy = true; } _callCount++; } if (invokeBusy) { _busyIndicator.Invoke(true); } IServiceFilterResponse response = await continuation.Handle(request).AsTask(); bool invokeIdle = false; lock (_countLock) { if (_callCount == 1) { invokeIdle = true; } _callCount--; } if (invokeIdle) { _busyIndicator.Invoke(false); } return response; }
public Task<IServiceFilterResponse> Handle(IServiceFilterRequest request, IServiceFilterContinuation continuation) { return Log(request, continuation); }
public async Task<IServiceFilterResponse> HandleRequest(IServiceFilterRequest request, IServiceFilterContinuation continuation) { IServiceFilterResponse response = null; try { for (int i = 0; i < this.NumberOfRequests; i++) { response = await continuation.Handle(request); test.AddLog("Sent the request number {0}", i + 1); test.AddLog("Response: {0} - {1}", response.StatusCode, response.StatusDescription); if (response.StatusCode >= 400) { test.AddLog("Invalid response. Content-Type: {0}", response.ContentType); test.AddLog("Response content: {0}", response.Content); throw new InvalidOperationException(); } } } catch (Exception ex) { test.AddLog("Exception while calling continuation: {0}", ex); this.TestFailed = true; throw; } return response; }
public IAsyncOperation<IServiceFilterResponse> Handle(IServiceFilterRequest request, IServiceFilterContinuation continuation) { return this.HandleRequest(request, continuation).AsAsyncOperation(); }
public IAsyncOperation<IServiceFilterResponse> Handle(IServiceFilterRequest request, IServiceFilterContinuation continuation) { this.RequestHeaders.Clear(); foreach (var reqHeader in request.Headers.Keys) { this.RequestHeaders.Add(reqHeader, request.Headers[reqHeader]); } return continuation.Handle(request).AsTask().ContinueWith<IServiceFilterResponse>(t => { this.ResponseHeaders.Clear(); var response = t.Result; foreach (var respHeader in response.Headers.Keys) { this.ResponseHeaders.Add(respHeader, response.Headers[respHeader]); } this.ResponseBody = response.Content; return response; }).AsAsyncOperation(); }
public IAsyncOperation<IServiceFilterResponse> Handle(IServiceFilterRequest request, IServiceFilterContinuation continuation) { TaskCompletionSource<IServiceFilterResponse> tcs = new TaskCompletionSource<IServiceFilterResponse>(); tcs.SetResult(new MyResponse(this.statusCode, this.statusDescription, this.contentType, this.content)); return tcs.Task.AsAsyncOperation(); }
public IAsyncOperation <IServiceFilterResponse> Handle(IServiceFilterRequest request, IServiceFilterContinuation continuation) { Request = request; return(Task.FromResult <IServiceFilterResponse>(Response).AsAsyncOperation()); }
public IAsyncOperation<IServiceFilterResponse> Handle(IServiceFilterRequest request, IServiceFilterContinuation continuation) { request.Headers.Add("x-zumo-master", E2EZumoHelper.AppMasterKey); return continuation.Handle(request); }
public IAsyncOperation<IServiceFilterResponse> Handle(IServiceFilterRequest request, IServiceFilterContinuation continuation) { Request = request; return Task.FromResult<IServiceFilterResponse>(Response).AsAsyncOperation(); }
public Windows.Foundation.IAsyncOperation <IServiceFilterResponse> Handle(IServiceFilterRequest request, IServiceFilterContinuation continuation) { return(HandleAsync(request, continuation).AsAsyncOperation()); }
public Windows.Foundation.IAsyncOperation<IServiceFilterResponse> Handle(IServiceFilterRequest request, IServiceFilterContinuation continuation) { return HandleAsync(request, continuation).AsAsyncOperation(); }
/// <summary> /// Handle an HTTP request and its corresponding response by applying /// the first filter and then the second filter. /// </summary> /// <param name="request">The HTTP request.</param> /// <param name="next"> /// The next operation in the HTTP pipeline to continue with. /// </param> /// <returns>The HTTP response.</returns> public IAsyncOperation <IServiceFilterResponse> Handle(IServiceFilterRequest request, IServiceFilterContinuation next) { if (request == null) { throw new ArgumentNullException("request"); } else if (next == null) { throw new ArgumentNullException("next"); } // Second(First(next(request)) return(this.Second.Handle(request, new ComposedContinuation(this.First, next))); }
public IAsyncOperation <IServiceFilterResponse> Handle(IServiceFilterRequest request, IServiceFilterContinuation continuation) { // Add master key to the request's header to have admin level control request.Headers["X-ZUMO-MASTER"] = this.masterKey; if (this.disableScripts) { // Get the request's query and append noScript=true as the first query parameter var uriBuilder = new UriBuilder(request.Uri); var oldQuery = (uriBuilder.Query ?? string.Empty).Trim('?'); uriBuilder.Query = ("noScript=true&" + oldQuery).Trim('&'); request.Uri = uriBuilder.Uri; } return(continuation.Handle(request)); }
private async Task <IServiceFilterResponse> Log(IServiceFilterRequest request, IServiceFilterContinuation next) { Test.Log(" >>> {0} {1} {2}", request.Method, request.Uri, request.Content); IServiceFilterResponse response = await next.Handle(request).AsTask(); Test.Log(" <<< {0} {1} {2}", response.StatusCode, response.StatusDescription, response.Content); return(response); }
public IAsyncOperation <IServiceFilterResponse> Handle(IServiceFilterRequest request, IServiceFilterContinuation continuation) { return(Log(request, continuation).AsAsyncOperation()); }
public IAsyncOperation <IServiceFilterResponse> Handle(IServiceFilterRequest request, IServiceFilterContinuation continuation) { throw new NotImplementedException(); }
public IAsyncOperation<IServiceFilterResponse> Handle(IServiceFilterRequest request, IServiceFilterContinuation continuation) { throw new NotImplementedException(); }
public IAsyncOperation <IServiceFilterResponse> Handle(IServiceFilterRequest request, IServiceFilterContinuation continuation) { TaskCompletionSource <IServiceFilterResponse> tcs = new TaskCompletionSource <IServiceFilterResponse>(); tcs.SetResult(new MyResponse(this.statusCode, this.statusDescription, this.contentType, this.content)); return(tcs.Task.AsAsyncOperation()); }
public async Task <IServiceFilterResponse> Handle(IServiceFilterRequest request, IServiceFilterContinuation continuation) { return(await Log(request, continuation)); }