/// <summary>
        /// Add Cosmos I18N
        /// </summary>
        /// <param name="builder"></param>
        /// <param name="optionsAct"></param>
        /// <param name="serviceConfigure"></param>
        /// <returns></returns>
        public static IHostBuilder AddInternationalizationService(
            this IHostBuilder builder,
            Action <I18NOptions> optionsAct = null,
            Action <II18NServiceCollection> serviceConfigure = null)
        {
            if (builder is null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            builder.ConfigureServices((ctx, services) => {
                // ReSharper disable once InconsistentNaming
                var i18nServices = services.AddInternationalizationService(optionsAct);

                serviceConfigure?.Invoke(i18nServices);

                i18nServices.AppendOrOverride();

                i18nServices.UpdateState();

                i18nServices.Done();
            });

            builder.ConfigureContainer <IServiceProvider>((ctx, resolver) => {
                StaticInstanceForILanguageServiceProvider.SetInstance(resolver.GetRequiredService <ILanguageServiceProvider>());
                StaticInstanceForTextProvider.SetInstance(resolver.GetRequiredService <ITextProvider>());
            });

            return(builder);
        }
        /// <summary>
        /// Use cosmos localization
        /// </summary>
        /// <param name="builder"></param>
        /// <returns></returns>
        public static IApplicationBuilder UseCosmosLocalization(this IApplicationBuilder builder)
        {
            var resolver = builder.ApplicationServices;

            StaticInstanceForILanguageServiceProvider.SetInstance(resolver.GetRequiredService <ILanguageServiceProvider>());
            StaticInstanceForTextProvider.SetInstance(resolver.GetRequiredService <ITextProvider>());
            return(builder);
        }
Ejemplo n.º 3
0
 public StaticProviderHack(ILanguageServiceProvider languageServiceProvider)
 {
     if (languageServiceProvider == null)
     {
         throw new ArgumentNullException(nameof(languageServiceProvider));
     }
     StaticInstanceForILanguageServiceProvider.SetInstance(languageServiceProvider);
 }
Ejemplo n.º 4
0
 public StaticProviderHack(IComponentContext context)
 {
     if (context == null)
     {
         throw new ArgumentNullException(nameof(context));
     }
     StaticInstanceForILanguageServiceProvider.SetInstance(context.Resolve <ILanguageServiceProvider>());
     StaticInstanceForTextProvider.SetInstance(context.Resolve <ITextProvider>());
 }
Ejemplo n.º 5
0
 private static void RegisterPostBuiltAction(this AutofacServiceCollection services)
 {
     services.AddPostRegisterAction("AfterBuild", builder =>
                                    builder.RegisterBuildCallback(container => {
         StaticInstanceForILanguageServiceProvider.SetInstance(container.Resolve <ILanguageServiceProvider>());
         StaticInstanceForTextProvider.SetInstance(container.Resolve <ITextProvider>());
         StaticFlag.HasInit             = true;
         StaticFlag.ExpectedServiceName = "AutofacImpl";
     }));
 }
Ejemplo n.º 6
0
 /// <summary>
 /// Add Cosmos I18N
 /// </summary>
 /// <param name="builder"></param>
 /// <param name="config"></param>
 /// <returns></returns>
 public static IHostBuilder AddCosmosLocalization(this IHostBuilder builder, Action <II18NServiceCollection> config = null)
 {
     if (builder is null)
     {
         throw new ArgumentNullException(nameof(builder));
     }
     builder.ConfigureServices((ctx, services) => services.RegisterCode());
     builder.ConfigureContainer <IServiceProvider>((ctx, resolver) => {
         StaticInstanceForILanguageServiceProvider.SetInstance(resolver.GetRequiredService <ILanguageServiceProvider>());
         StaticInstanceForTextProvider.SetInstance(resolver.GetRequiredService <ITextProvider>());
     });
     return(builder);
 }
Ejemplo n.º 7
0
        /// <summary>
        /// Use cosmos localization
        /// </summary>
        /// <param name="builder"></param>
        /// <returns></returns>
        public static IApplicationBuilder UseCosmosLocalization(this IApplicationBuilder builder)
        {
            if (builder is null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            var resolver = builder.ApplicationServices;

            StaticInstanceForILanguageServiceProvider.SetInstance(resolver.GetRequiredService <ILanguageServiceProvider>());
            StaticInstanceForTextProvider.SetInstance(resolver.GetRequiredService <ITextProvider>());

            return(builder);
        }
Ejemplo n.º 8
0
 private static void UpdateStaticResolver(IServiceProvider resolver)
 {
     StaticInstanceForILanguageServiceProvider.SetInstance(resolver.GetRequiredService <ILanguageServiceProvider>());
 }