Example #1
0
        /// <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();
        }
Example #2
0
        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();
        }
Example #3
0
        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();
        }