Example #1
0
        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));
                }
            }
        }
Example #2
0
        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));
                }
            }
        }