コード例 #1
0
        public async Task <List <SendDhwManifestResponse> > SendManifestAsync(SendManifestPackageDTO sendTo,
                                                                              DwhManifestMessageBag messageBag)
        {
            var responses             = new List <SendDhwManifestResponse>();
            HttpClientHandler handler = new HttpClientHandler()
            {
                AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate
            };
            var client = Client ?? new HttpClient(handler);

            client.DefaultRequestHeaders.AcceptEncoding.Add(new StringWithQualityHeaderValue("gzip"));
            client.DefaultRequestHeaders.AcceptEncoding.Add(new StringWithQualityHeaderValue("deflate"));
            foreach (var message in messageBag.Messages)
            {
                try
                {
                    var response = await client.PostAsJsonAsync(sendTo.GetUrl($"{_endPoint.HasToEndsWith("/")}spot"),
                                                                message.Manifest);

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

                        responses.Add(new SendDhwManifestResponse(content));
                    }
                    else
                    {
                        var error = await response.Content.ReadAsStringAsync();

                        throw new Exception(error);
                    }
                }
                catch (Exception e)
                {
                    Log.Error(e, $"Send Manifest Error");
                    throw;
                }
            }

            return(responses);
        }
コード例 #2
0
        public void Init()
        {
            var config = new ConfigurationBuilder()
                         .AddJsonFile("appsettings.json")
                         .Build();
            var connectionString = config["ConnectionStrings:DwapiConnection"];

            _serviceProvider = new ServiceCollection()
                               .AddDbContext <Dwapi.SettingsManagement.Infrastructure.SettingsContext>(o => o.UseSqlServer(connectionString))
                               .AddDbContext <UploadContext>(o => o.UseSqlServer(connectionString))
                               .AddTransient <IDwhExtractReader, DwhExtractReader>()
                               .AddTransient <IDwhPackager, DwhPackager>()
                               .AddTransient <IDwhSendService, DwhSendService>()
                               .BuildServiceProvider();

            /*
             *  22704|TOGONYE DISPENSARY|KIRINYAGA
             *  22696|HERTLANDS MEDICAL CENTRE|NAROK
             */

            _bag    = TestDataFactory.DwhManifestMessageBag(2, 10001);
            _artBag = TestDataFactory.ArtMessageBag(5, 10001);
        }
コード例 #3
0
ファイル: DwhSendService.cs プロジェクト: mgitonga/dwapi
 public Task <List <SendDhwManifestResponse> > SendManifestAsync(SendManifestPackageDTO sendTo)
 {
     return(SendManifestAsync(sendTo, DwhManifestMessageBag.Create(_packager.GenerateWithMetrics().ToList())));
 }
コード例 #4
0
        public async Task <List <SendDhwManifestResponse> > SendManifestAsync(SendManifestPackageDTO sendTo, DwhManifestMessageBag messageBag)
        {
            var responses = new List <SendDhwManifestResponse>();

            var client = new HttpClient();

            foreach (var message in messageBag.Messages)
            {
                try
                {
                    var msg      = JsonConvert.SerializeObject(message);
                    var response = await client.PostAsJsonAsync(sendTo.GetUrl($"{_endPoint.HasToEndsWith("/")}spot"), message.Manifest);

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

                        responses.Add(new SendDhwManifestResponse(content));
                    }
                    else
                    {
                        var error = await response.Content.ReadAsStringAsync();

                        throw new Exception(error);
                    }
                }
                catch (Exception e)
                {
                    Log.Error(e, $"Send Manifest Error");
                    throw;
                }
            }

            return(responses);
        }
コード例 #5
0
 public Task <List <SendDhwManifestResponse> > SendDiffManifestAsync(SendManifestPackageDTO sendTo, string version)
 {
     return(SendManifestAsync(sendTo, DwhManifestMessageBag.Create(_packager.GenerateDiffWithMetrics(sendTo.GetEmrDto()).ToList()), version));
 }