public PendingCompletion(PrivateRequestData requestData, Stream result, Exception error, HttpWebResponse response) { _requestData = requestData; _error = error; _response = response; _result = result; }
protected override void Responser(PrivateRequestData requestData, WebServiceEventArgs completer) { var myRequestData = (DoubleQueueRequestData)requestData; switch (myRequestData.CurrentWorker) { case CurrentlyUsedWorker.Primary: _primaryWorker.SignalOperationDone(); break; case CurrentlyUsedWorker.Secondary: _secondaryWorker.SignalOperationDone(); break; default: throw new ArgumentOutOfRangeException(); } base.Responser(myRequestData, completer); }
protected void CreateGetRequestWithState(PrivateRequestData requestData, AsyncCallback getCallback) { if (requestData == null) throw new ArgumentNullException("requestData", @"Must have request data to perform a request. Loser."); if (getCallback == null) throw new ArgumentNullException("getCallback", @"Must have a callback to return results for requested data. Loser."); if (!HasInternetConnectivity) { Debug.WriteLine("NO INTERNET connectivity, skipping"); return; } var urlGenerated = string.Format("{0}{1}", requestData.RequestUri, requestData.Parameters); var request = WebRequest.CreateHttp(urlGenerated); request.AllowReadStreamBuffering = true; request.Method = "GET"; request.BeginGetResponse(getCallback, new PrivateWebUserState(request, requestData)); WhereDebug.WriteLine(string.Format("API GET: {0}", urlGenerated)); lock (_requestLockObject) { _runningRequests.Add(requestData.ApiGuidToken, request); } }
public PrivateWebUserState(WebRequest request, PrivateRequestData data) { _request = request; _data = data; }
/// <summary> /// Call the response callback from WebServiceEventArgs /// </summary> /// <param name="requestData"></param> /// <param name="completer"></param> protected virtual void Responser(PrivateRequestData requestData, WebServiceEventArgs completer) { if (completer == null) throw new ArgumentNullException("completer", "Response must not be null."); if (completer.ResponseStatus == WebApiServerStatus.Unknown) Utils.ErrorLogInstance.AddError("Responser", "Default WebServiceEventArgs found. Invalid Web state"); lock (_requestLockObject) { // remove from running requests RunningRequests.Remove(requestData.ApiGuidToken); } if (requestData.IsHandled) return; // Finally call the callback on the father thread if (requestData.ReturnOnUi) Deployment.Current.Dispatcher.BeginInvoke(() => requestData.Result(requestData.ApiGuidToken, completer)); else requestData.Result(requestData.ApiGuidToken, completer); requestData.Dispose(); }
protected void CreatePostRequestWithState(PrivateRequestData requestData, AsyncCallback postCallback) { if (requestData == null) throw new ArgumentNullException("requestData", @"Must have request data to perform a request. Loser."); if (postCallback == null) throw new ArgumentNullException("postCallback", @"Must have a callback to return results for requested data. Loser."); if (!HasInternetConnectivity) { Debug.WriteLine("NO INTERNET connectivity, skipping"); return; } var request = WebRequest.CreateHttp(requestData.RequestUri); request.Method = "POST"; if (requestData.Parameters.Contains("?")) request.ContentType = PostContentType; request.BeginGetRequestStream(postCallback, new PrivateWebUserState(request, requestData)); WhereDebug.WriteLine(string.Format("API POST: {0}, writing string {1}", requestData.RequestUri, requestData.Parameters)); lock (_requestLockObject) { _runningRequests.Add(requestData.ApiGuidToken, request); } }