public PendingCompletion(PrivateRequestData requestData, Stream result, Exception error, HttpWebResponse response)
 {
     _requestData = requestData;
     _error = error;
     _response = response;
     _result = result;
 }
Exemple #2
0
		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);
			}

		}