示例#1
0
        static void Main(string[] args)
        {
            ConfigurationBuilder configurationBuilder = new ConfigurationBuilder();

            _configuration = configurationBuilder.AddCommandLine(args).AddEnvironmentVariables().Build();

            Ensure.That(_configuration["FhirServerUrl"]).IsNotNullOrWhiteSpace();
            Ensure.That(_configuration["Authority"]).IsNotNullOrWhiteSpace();
            Ensure.That(_configuration["ClientId"]).IsNotNullOrWhiteSpace();
            Ensure.That(_configuration["ClientSecret"]).IsNotNullOrWhiteSpace();

            try
            {
                string authority    = _configuration["Authority"];
                string audience     = string.IsNullOrEmpty(_configuration["Audience"]) ? _configuration["FhirServerUrl"] : _configuration["Audience"];
                string clientId     = _configuration["ClientId"];
                string clientSecret = _configuration["ClientSecret"];

                FhirAuthenticator auth    = new FhirAuthenticator(authority, clientId, clientSecret, audience);
                FhirQueryDeleter  deleter = new FhirQueryDeleter(_configuration["FhirServerUrl"], auth);
                deleter.AppendQuery("/");
            }
            catch (Exception)
            {
                Console.WriteLine("Failed to run export");
                throw;
            }
        }
示例#2
0
        public FhirQueryDeleter(string serverUrl, FhirAuthenticator fhirAuthenticator, int parallel = 4)
        {
            ServerUrl = serverUrl;
            FhirAuth  = fhirAuthenticator;

            QueryQueue = new ActionBlock <string>(s => AppendQueryWorker(s),
                                                  new ExecutionDataflowBlockOptions
            {
                MaxDegreeOfParallelism = parallel
            });
        }