Beispiel #1
0
        internal static async Task <T> UploadAsync <T>(FortnoxApiClientRequest <T> request, string fileName, byte[] filedata) where T : class
        {
            using (var client = new HttpClient())
            {
                client.DefaultRequestHeaders.Add("Access-Token", request.AccessToken);
                client.DefaultRequestHeaders.Add("Client-Secret", request.ClientSecret);

                var content = new MultipartFormDataContent("Upload----" + DateTime.Now.ToString(CultureInfo.InvariantCulture));
                content.Add(new StreamContent(new MemoryStream(filedata)), "file", fileName);

                var response = await client.PostAsync(request.GetEndpoint(), content);

                return(await GetResponseAsync <T>(response));
            }
        }
Beispiel #2
0
        internal static async Task <TResponse> CallAsync <T, TResponse>(FortnoxApiClientRequest <T> request)
            where T : class
            where TResponse : class
        {
            using (var client = new HttpClient())
            {
                client.DefaultRequestHeaders.Add("Access-Token", request.AccessToken);
                client.DefaultRequestHeaders.Add("Client-Secret", request.ClientSecret);
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                HttpResponseMessage response;

                switch (request.HttpMethod)
                {
                case HttpMethod m when m == Get:
                    response = await client.GetAsync(request.GetEndpoint());

                    break;

                case HttpMethod m when m == Delete:
                    response = await client.DeleteAsync(request.GetEndpoint());

                    break;

                case HttpMethod m when m == Post:
                    response = await client.PostAsync(request.GetEndpoint(), request.GetStringContent());

                    break;

                case HttpMethod m when m == Put:
                    response = await client.PutAsync(request.GetEndpoint(), request.GetStringContent());

                    break;

                default:
                    throw new NotSupportedException();
                }

                return(await GetResponseAsync <TResponse>(response));
            }
        }