internal async Task <IApiResponse <TResponse> > Execute <TResponse>(KrakenApiRequest krakenApiRequest, CancellationToken cancellationToken) { krakenApiRequest.Body.Authentication.ApiKey = _apiKey; krakenApiRequest.Body.Authentication.ApiSecret = _apiSecret; krakenApiRequest.Body.Dev = SandboxMode; bool isSet = false; if (krakenApiRequest.Body is IOptimizeSetWaitRequest || krakenApiRequest.Body is IOptimizeSetUploadWaitRequest) { isSet = true; } using (var requestMessage = new HttpRequestMessage(krakenApiRequest.Method, krakenApiRequest.Uri)) { requestMessage.Content = new ObjectContent(krakenApiRequest.Body.GetType(), krakenApiRequest.Body, _formatter, new MediaTypeHeaderValue("application/json")); // var test1 = requestMessage.Content.ReadAsStringAsync(); using ( var responseMessage = await _client.SendAsync(requestMessage, cancellationToken).ConfigureAwait(false)) { // var test = await responseMessage.Content.ReadAsStringAsync(); return(await BuildResponse <TResponse>(responseMessage, cancellationToken, isSet).ConfigureAwait(false)); } } }
internal async Task <IApiResponse <TResponse> > ExecuteUpload <TResponse>( KrakenApiRequest krakenApiRequest, byte[] image, string filename, CancellationToken cancellationToken) { filename.ThrowIfNullOrEmpty("filename"); krakenApiRequest.Body.Authentication.ApiKey = _apiKey; krakenApiRequest.Body.Authentication.ApiSecret = _apiSecret; krakenApiRequest.Body.Dev = SandboxMode; bool isSet = false; if (krakenApiRequest.Body is IOptimizeSetWaitRequest || krakenApiRequest.Body is IOptimizeSetUploadWaitRequest) { isSet = true; } using ( var content = new MultipartFormDataContent("Upload----" + DateTime.Now.ToString(CultureInfo.InvariantCulture))) { var body = new ObjectContent(krakenApiRequest.Body.GetType(), krakenApiRequest.Body, _formatter, new MediaTypeHeaderValue("application/json")); content.Add(body); content.Add(new StreamContent(new MemoryStream(image)), filename, filename); using (var responseMessage = await _client.PostAsync(_krakenApiUrl + krakenApiRequest.Uri, content, cancellationToken)) { //var test = await responseMessage.Content.ReadAsStringAsync(); return(await BuildResponse <TResponse>(responseMessage, cancellationToken, isSet).ConfigureAwait(false)); } } }