Example #1
0
        private static async Task UpdateTenants(string tenantsApiUrl, string tenantsApiKey, IEnumerable <string> dashboardfiles, string region)
        {
            var templatesAggregator  = new GenerateJson(dashboardfiles);
            var templatesAggregatted = templatesAggregator.GenerateBatchJson();

            templatesAggregator.ValidateJson(templatesAggregatted);
            var client = new TenantServiceClient(new TenantServiceClientSettings {
                AccessKey = tenantsApiKey, BaseUrl = new System.Uri(tenantsApiUrl)
            }, new HttpClient());
            var tenants = await client.GetListAsync();

            foreach (var tenant in tenants)
            {
                if (tenant.Region.ToUpperInvariant() != region.ToUpperInvariant())
                {
                    continue;
                }
                Console.WriteLine($"{tenant.Name,-30} {tenant.Region,-15} {tenant.Id}");
                var application = tenant.Applications.FirstOrDefault();
                var binding     = tenant.AuthorityBindings.FirstOrDefault(a => "APIV2" == a.Site.ToUpperInvariant());

                var tenantInfo = new TenantInfo
                {
                    Name      = tenant.Name,
                    Id        = tenant.Id.ToString(),
                    AppId     = application.AppId.ToString(),
                    AppSecret = application.AppSecret,
                    ApiV2Url  = binding.AuthorityBinding
                };

                var updater = new DashboardTenantUpdater(tenantInfo, new HttpClient(), templatesAggregatted);
                await updater.DoUpdateAsync();
            }
        }