Exemple #1
0
        public async Task <GetPostcodeCoordinatesResponse> GetPostcodeCoordinatesAsync(List <string> postCodes, CancellationToken cancellationToken)
        {
            string path = $"api/GetPostcodeCoordinates";

            GetPostcodeCoordinatesRequest getPostcodeCoordinatesRequest = new GetPostcodeCoordinatesRequest()
            {
                Postcodes = postCodes
            };

            var streamContent = HttpContentUtils.SerialiseToJsonAndCompress(getPostcodeCoordinatesRequest);

            ResponseWrapper <GetPostcodeCoordinatesResponse, AddressServiceErrorCode> getPostcodeCoordinatesResponseWithWrapper;

            using (HttpResponseMessage response = await _httpClientWrapper.PostAsync(HttpClientConfigName.AddressService, path, streamContent, cancellationToken).ConfigureAwait(false))
            {
                response.EnsureSuccessStatusCode();
                Stream stream = await response.Content.ReadAsStreamAsync();

                getPostcodeCoordinatesResponseWithWrapper = await Utf8Json.JsonSerializer.DeserializeAsync <ResponseWrapper <GetPostcodeCoordinatesResponse, AddressServiceErrorCode> >(stream, StandardResolver.AllowPrivate);
            }

            if (!getPostcodeCoordinatesResponseWithWrapper.IsSuccessful)
            {
                throw new Exception($"Calling Address Service GetPostcodeCoordinatesAsync endpoint unsuccessful: {getPostcodeCoordinatesResponseWithWrapper.Errors.FirstOrDefault()?.ErrorMessage}");
            }

            return(getPostcodeCoordinatesResponseWithWrapper.Content);
        }
        public async Task SerialiseAndCompressContent()
        {
            TestObject testObject = new TestObject()
            {
                Id = 99
            };

            StreamContent result = HttpContentUtils.SerialiseToJsonAndCompress(testObject);

            Stream stream = await result.ReadAsStreamAsync();

            TestObject deserialisedAndDecompressedContent;

            using (GZipStream decompressionStream = new GZipStream(stream, CompressionMode.Decompress))
            {
                deserialisedAndDecompressedContent = await Utf8Json.JsonSerializer.DeserializeAsync <TestObject>(decompressionStream);
            }

            Assert.AreEqual(testObject.Id, deserialisedAndDecompressedContent.Id);
        }