예제 #1
0
        public async Task <ExposureDataResponse?> UploadExposureDataAsync(
            ExposureRequest exposureRequest
            )
        {
            var requestJson = exposureRequest.ToJsonString();
            var httpContent = new StringContent(requestJson);

            Uri uri = new Uri($"{_serverConfiguration.ApiEndpoint}/{_serverConfiguration.ClusterId}/");

            try
            {
                HttpResponseMessage response = await _client.PutAsync(uri, httpContent);

                if (response.IsSuccessStatusCode)
                {
                    var responseJson = await response.Content.ReadAsStringAsync();

                    Debug.Print($"{responseJson}");

                    return(JsonConvert.DeserializeObject <ExposureDataResponse>(responseJson));
                }
                else
                {
                    Debug.Print($"UploadExposureDataAsync {response.StatusCode}");
                    return(null);
                }
            }
            catch (Exception exception)
            {
                Debug.Print($"Exception {exception}");
                return(null);
            }
        }
예제 #2
0
        public async Task UploadExposureDataAsync(
            ExposureRequest exposureRequest
            )
        {
            await _serverConfigurationRepository.LoadAsync();

            foreach (var url in _serverConfigurationRepository.ExposureDataCollectServerUrls)
            {
                await UploadExposureDataAsync(exposureRequest, url);
            }
        }
예제 #3
0
        public async Task UploadExposureDataAsync(
            ExposureConfiguration exposureConfiguration,
            string deviceModel,
            string enVersion
            )
        {
            var exposureResult = new ExposureRequest(
                exposureConfiguration
                )
            {
                Device    = deviceModel,
                EnVersion = enVersion,
            };

            await UploadExposureDataAsync(exposureResult);
        }
예제 #4
0
        public async Task UploadExposureDataAsync(
            ExposureConfiguration exposureConfiguration,
            string deviceModel,
            string enVersion,
            ExposureSummary exposureSummary,
            IList <ExposureInformation> exposureInformation
            )
        {
            var exposureResult = new ExposureRequest(exposureConfiguration,
                                                     exposureSummary, exposureInformation
                                                     )
            {
                Device    = deviceModel,
                EnVersion = enVersion,
            };

            await UploadExposureDataAsync(exposureResult);
        }
예제 #5
0
        public async Task UploadExposureDataAsync(
            ExposureConfiguration exposureConfiguration,
            string deviceModel,
            string enVersion,
            IList <DailySummary> dailySummaries,
            IList <ExposureWindow> exposureWindows
            )
        {
            var exposureResult = new ExposureRequest(exposureConfiguration,
                                                     dailySummaries, exposureWindows
                                                     )
            {
                Device    = deviceModel,
                EnVersion = enVersion,
            };

            await UploadExposureDataAsync(exposureResult);
        }
예제 #6
0
        private async Task <ExposureDataResponse?> UploadExposureDataAsync(
            ExposureRequest exposureRequest,
            string exposureDataCollectServerEndpoint
            )
        {
            _loggerService.StartMethod();
            _loggerService.Debug($"exposureDataCollectServerEndpoint: {exposureDataCollectServerEndpoint}");

            try
            {
                var requestJson = exposureRequest.ToJsonString();

                _loggerService.Info(requestJson);

                var httpContent = new StringContent(requestJson, Encoding.UTF8, "application/json");

                Uri uri = new Uri(exposureDataCollectServerEndpoint);

                HttpResponseMessage response = await _httpClient.PutAsync(uri, httpContent);

                if (response.IsSuccessStatusCode)
                {
                    var responseJson = await response.Content.ReadAsStringAsync();

                    _loggerService.Debug($"response {responseJson}");

                    return(JsonConvert.DeserializeObject <ExposureDataResponse>(responseJson));
                }
                else
                {
                    _loggerService.Info($"UploadExposureDataAsync {response.StatusCode}");
                    return(null);
                }
            }
            finally
            {
                _loggerService.EndMethod();
            }
        }