public async static Task<Guid> RequestCallbackAsync(Uri callbackUri, DateTimeOffset callbackTime, CancellationToken cancellationToken) { if (callbackUri == null) { throw new ArgumentNullException("callbackUri"); } if (!callbackUri.IsAbsoluteUri) { throw new ArgumentException("Callback Uri is not an absolute Uri.", "callbackUri"); } var serviceBaseUri = new ServiceBaseUri(); try { bool isDisposalRequired; HttpClient httpClient = AcquireHttpClient(out isDisposalRequired); try { Uri requestUri = BuildScheduleRequestUri(serviceBaseUri, callbackTime.UtcDateTime, callbackUri); string authorizationHeaderValue = RequestValidator.Issue(callbackUri); using (var requestMessage = new HttpRequestMessage(HttpMethod.Put, requestUri)) { if (!string.IsNullOrEmpty(authorizationHeaderValue)) { requestMessage.Headers.Add(_RevaleeAuthHttpHeaderName, authorizationHeaderValue); } using (HttpResponseMessage response = await httpClient.SendAsync(requestMessage, HttpCompletionOption.ResponseContentRead, cancellationToken).ConfigureAwait(false)) { if (response.IsSuccessStatusCode) { string responseText = await response.Content.ReadAsStringAsync().ConfigureAwait(false); return Guid.ParseExact(responseText, "D"); } else { throw new RevaleeRequestException(serviceBaseUri, callbackUri, new WebException(string.Format("The remote server returned an error: ({0}) {1}.", (int)response.StatusCode, response.ReasonPhrase), WebExceptionStatus.ProtocolError)); } } } } finally { if (isDisposalRequired) { httpClient.Dispose(); } } } catch (AggregateException aex) { throw new RevaleeRequestException(serviceBaseUri, callbackUri, aex.Flatten().InnerException); } catch (WebException wex) { throw new RevaleeRequestException(serviceBaseUri, callbackUri, wex); } }
public async static Task <Guid> RequestCallbackAsync(Uri callbackUri, DateTimeOffset callbackTime, CancellationToken cancellationToken) { if (callbackUri == null) { throw new ArgumentNullException("callbackUri"); } if (!callbackUri.IsAbsoluteUri) { throw new ArgumentException("Callback Uri is not an absolute Uri.", "callbackUri"); } var serviceBaseUri = new ServiceBaseUri(); try { bool isDisposalRequired; HttpClient httpClient = AcquireHttpClient(out isDisposalRequired); try { Uri requestUri = BuildScheduleRequestUri(serviceBaseUri, callbackTime.UtcDateTime, callbackUri); string authorizationHeaderValue = RequestValidator.Issue(callbackUri); using (var requestMessage = new HttpRequestMessage(HttpMethod.Put, requestUri)) { if (!string.IsNullOrEmpty(authorizationHeaderValue)) { requestMessage.Headers.Add(_RevaleeAuthHttpHeaderName, authorizationHeaderValue); } using (HttpResponseMessage response = await httpClient.SendAsync(requestMessage, HttpCompletionOption.ResponseContentRead, cancellationToken).ConfigureAwait(false)) { if (response.IsSuccessStatusCode) { string responseText = await response.Content.ReadAsStringAsync().ConfigureAwait(false); return(Guid.ParseExact(responseText, "D")); } else { throw new RevaleeRequestException(serviceBaseUri, callbackUri, new WebException(string.Format("The remote server returned an error: ({0}) {1}.", (int)response.StatusCode, response.ReasonPhrase), WebExceptionStatus.ProtocolError)); } } } } finally { if (isDisposalRequired) { httpClient.Dispose(); } } } catch (AggregateException aex) { throw new RevaleeRequestException(serviceBaseUri, callbackUri, aex.Flatten().InnerException); } catch (WebException wex) { throw new RevaleeRequestException(serviceBaseUri, callbackUri, wex); } }
public async static Task<bool> CancelCallbackAsync(Guid callbackId, Uri callbackUri, CancellationToken cancellationToken) { if (Guid.Empty.Equals(callbackId)) { throw new ArgumentNullException("callbackId"); } if (callbackUri == null) { throw new ArgumentNullException("callbackUri"); } if (!callbackUri.IsAbsoluteUri) { throw new ArgumentException("Callback Uri is not an absolute Uri.", "callbackUri"); } var serviceBaseUri = new ServiceBaseUri(); try { bool isDisposalRequired; HttpClient httpClient = AcquireHttpClient(out isDisposalRequired); try { Uri requestUri = BuildCancelRequestUri(serviceBaseUri, callbackId, callbackUri); using (var requestMessage = new HttpRequestMessage(HttpMethod.Put, requestUri)) { using (HttpResponseMessage response = await httpClient.SendAsync(requestMessage, HttpCompletionOption.ResponseContentRead, cancellationToken).ConfigureAwait(false)) { if (response.IsSuccessStatusCode) { return true; } else { throw new RevaleeRequestException(serviceBaseUri, callbackUri, new WebException(string.Format("The remote server returned an error: ({0}) {1}.", (int)response.StatusCode, response.ReasonPhrase), WebExceptionStatus.ProtocolError)); } } } } finally { if (isDisposalRequired) { httpClient.Dispose(); } } } catch (AggregateException aex) { throw new RevaleeRequestException(serviceBaseUri, callbackUri, aex.Flatten().InnerException); } catch (WebException wex) { throw new RevaleeRequestException(serviceBaseUri, callbackUri, wex); } }
public async static Task <bool> CancelCallbackAsync(Guid callbackId, Uri callbackUri, CancellationToken cancellationToken) { if (Guid.Empty.Equals(callbackId)) { throw new ArgumentNullException("callbackId"); } if (callbackUri == null) { throw new ArgumentNullException("callbackUri"); } if (!callbackUri.IsAbsoluteUri) { throw new ArgumentException("Callback Uri is not an absolute Uri.", "callbackUri"); } var serviceBaseUri = new ServiceBaseUri(); try { bool isDisposalRequired; HttpClient httpClient = AcquireHttpClient(out isDisposalRequired); try { Uri requestUri = BuildCancelRequestUri(serviceBaseUri, callbackId, callbackUri); using (var requestMessage = new HttpRequestMessage(HttpMethod.Put, requestUri)) { using (HttpResponseMessage response = await httpClient.SendAsync(requestMessage, HttpCompletionOption.ResponseContentRead, cancellationToken).ConfigureAwait(false)) { if (response.IsSuccessStatusCode) { return(true); } else { throw new RevaleeRequestException(serviceBaseUri, callbackUri, new WebException(string.Format("The remote server returned an error: ({0}) {1}.", (int)response.StatusCode, response.ReasonPhrase), WebExceptionStatus.ProtocolError)); } } } } finally { if (isDisposalRequired) { httpClient.Dispose(); } } } catch (AggregateException aex) { throw new RevaleeRequestException(serviceBaseUri, callbackUri, aex.Flatten().InnerException); } catch (WebException wex) { throw new RevaleeRequestException(serviceBaseUri, callbackUri, wex); } }