using Microsoft.Extensions.Configuration;
using Microsoft.Azure.Functions.Worker.Builder;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Configuration.AzureAppConfiguration;
using Microsoft.AspNetCore.Cors.Infrastructure;
using Microsoft.Extensions.DependencyInjection;
var builder = FunctionsApplication.CreateBuilder(args);
string? appConfigConnectionString = builder.Configuration["appConfigurationConnectionString"];
if (string.IsNullOrEmpty(appConfigConnectionString))
throw new InvalidOperationException("App Configuration connection string is not set.");
builder.Configuration.AddAzureAppConfiguration(options =>
options.Connect(new Uri(appConfigConnectionString), new DefaultAzureCredential())
.ConfigureKeyVault(kv => kv.SetCredential(new DefaultAzureCredential()))
.ConfigureRefresh(refreshOptions =>
refreshOptions.Register("Sentinel", refreshAll: true);
refreshOptions.SetRefreshInterval(TimeSpan.FromSeconds(60));
.Select(KeyFilter.Any, "dev");
.Select(KeyFilter.Any, "prod");
.Select(KeyFilter.Any, "int");