/// <summary> /// Application entry method /// </summary> /// <param name="args"></param> public static void Main(string[] args) { var host = CreateHostBuilder(args).Build(); ModelsLocalizationSetup.ConfigureModelsLocalizers(host.Services); host.Run(); }
public TestsBase() { ConfigurationBuilder configurationBuilder = new(); configurationBuilder.AddJsonFile("appsettings.json") .AddUserSecrets("74135dc8-e371-4439-8744-4493c94df36e"); var configRoot = configurationBuilder.Build(); configurationBuilder.AddAzureAppConfiguration(options => { var azureAppConfigConnectionString = configRoot[Constants.ConfigurationKeysNames.AzureAppConfigConnectionString]; options.Connect(azureAppConfigConnectionString); }); IConfiguration configuration = configurationBuilder.Build(); var builder = new WebHostBuilder() .ConfigureAppConfiguration((hostingContext, configurationBuilder) => { IConfigurationRoot configurationRoot = configurationBuilder.Build(); var defaultConnectionString = configurationRoot.GetConnectionString( Common.Global.Constants.ConfigurationKeysNames.DefaultConnectionString); DbContextOptionsBuilder <FairplaytubeDatabaseContext> dbContextOptionsBuilder = new(); using FairplaytubeDatabaseContext FairplaytubeDatabaseContext = new(dbContextOptionsBuilder.UseSqlServer(defaultConnectionString, sqlServerOptionsAction: (serverOptions) => serverOptions.EnableRetryOnFailure(3)).Options); }) .UseConfiguration(configuration) .UseStartup <Startup>(); Server = new TestServer(builder); ModelsLocalizationSetup.ConfigureModelsLocalizers(Server.Services); Configuration = Server.Services.GetRequiredService <IConfiguration>(); this.Mapper = Server.Services.GetRequiredService <IMapper>(); DataStorageConfiguration = Server.Services.GetRequiredService <DataStorageConfiguration>(); AzureBlobStorageConfiguration = Server.Services.GetRequiredService <AzureBlobStorageConfiguration>(); TestAzureAdB2CAuthConfiguration = Configuration.GetSection("TestAzureAdB2CAuthConfiguration").Get <TestAzureAdB2CAuthConfiguration>(); AzureVideoIndexerConfiguration = Server.Services.GetRequiredService <AzureVideoIndexerConfiguration>(); TestVideoBloblUrl = configRoot.GetValue <string>("TestVideoBloblUrl"); this.TestsHttpClientFactory = new TestsHttpClientFactory(); }
public static async Task Main(string[] args) { string assemblyName = "FairPlayTube"; var builder = WebAssemblyHostBuilder.CreateDefault(args); builder.RootComponents.Add <App>("#app"); builder.Services.AddBlazoredToast(); builder.Services.AddSingleton <IStringLocalizerFactory, ApiLocalizerFactory>(); builder.Services.AddSingleton <IStringLocalizer, ApiLocalizer>(); builder.Services.AddLocalization(); builder.Services.AddScoped <LocalizationMessageHandler>(); builder.Services.AddHttpClient($"{assemblyName}.ServerAPI", client => client.BaseAddress = new Uri(builder.HostEnvironment.BaseAddress)) .AddHttpMessageHandler <LocalizationMessageHandler>() .AddHttpMessageHandler <BaseAddressAuthorizationMessageHandler>(); builder.Services.AddHttpClient($"{assemblyName}.ServerAPI.Anonymous", client => client.BaseAddress = new Uri(builder.HostEnvironment.BaseAddress)) .AddHttpMessageHandler <LocalizationMessageHandler>(); builder.Services.AddScoped(sp => sp.GetRequiredService <IHttpClientFactory>() .CreateClient($"{assemblyName}.ServerAPI")); builder.Services.AddScoped(sp => sp.GetRequiredService <IHttpClientFactory>() .CreateClient($"{assemblyName}.ServerAPI.Anonymous")); builder.Services.AddMsalAuthentication <RemoteAuthenticationState, CustomRemoteUserAccount>(options => { builder.Configuration.Bind("AzureAdB2C", options.ProviderOptions.Authentication); var defaultScope = builder.Configuration["AzureAdB2CScopes:DefaultScope"]; options.ProviderOptions.DefaultAccessTokenScopes.Add(defaultScope); options.ProviderOptions.LoginMode = "redirect"; options.UserOptions.NameClaim = "name"; options.UserOptions.RoleClaim = "Role"; }).AddAccountClaimsPrincipalFactory < RemoteAuthenticationState, CustomRemoteUserAccount, CustomAccountClaimsPrincipalFactory>(); AzureQnABotConfiguration azureQnABotConfiguration = builder.Configuration.GetSection("AzureQnABotConfiguration").Get <AzureQnABotConfiguration>(); builder.Services.AddSingleton(azureQnABotConfiguration); DisplayResponsiveAdConfiguration displayResponsiveAdConfiguration = builder.Configuration.GetSection("DisplayResponsiveAdConfiguration") .Get <DisplayResponsiveAdConfiguration>(); builder.Services.AddSingleton(displayResponsiveAdConfiguration); FaceBookLikeButtonConfiguration faceBookLikeButtonConfiguration = builder.Configuration.GetSection(nameof(faceBookLikeButtonConfiguration)) .Get <FaceBookLikeButtonConfiguration>(); builder.Services.AddSingleton(faceBookLikeButtonConfiguration); builder.Services.AddTransient <IVideoEditAccessTokenProvider, VideoEditAccessTokenProvider>(); builder.Services.AddSingleton <LocalizationClientService>(); builder.Services.AddTransient <HttpClientService>(); builder.Services.AddTransient <ToastifyService>(); builder.Services.AddTransient <VideoClientService>(); builder.Services.AddTransient <UserProfileClientService>(); builder.Services.AddTransient <VisitorTrackingClientService>(); builder.Services.AddTransient <UserClientService>(); builder.Services.AddTransient <SearchClientService>(); builder.Services.AddTransient <VideoCommentClientService>(); builder.Services.AddTransient <UserYouTubeChannelClientService>(); builder.Services.AddTransient <VideoPlaylistClientService>(); builder.Services.AddTransient <VideoJobClientService>(); builder.Services.AddTransient <VideoJobApplicationClientService>(); builder.Services.AddTransient <FeatureClientService>(); builder.Services.AddTransient <UserRequestClientService>(); builder.Services.AddTransient <UserMessageClientService>(); builder.Services.AddTransient <ClientSideErrorLogClientService>(); var host = builder.Build(); ModelsLocalizationSetup.ConfigureModelsLocalizers(host.Services); await host.SetDefaultCulture(); await host.RunAsync(); }