Ejemplo n.º 1
0
        /// <summary>
        /// Add Json localization services.
        /// </summary>
        /// <param name="services">The service collection to setup.</param>
        /// <param name="setupAction">The action delegate to fine tune the Json localizer behavior
        /// (Use embedded Json resource files if null).</param>
        /// <param name="serviceLifetime">Service Lifetime to use to register the IStringLocalizerFactory. (Default is Scoped)</param>
        /// <returns>The given service collection updated with the Json localization services.</returns>
        public static IServiceCollection AddJsonLocalization(this IServiceCollection services, Action <JsonLocalizationOptionsBuilder> setupAction, ServiceLifetime serviceLifetime = ServiceLifetime.Scoped)
        {
            services
            .AddLocalization()
            .AddSingleton <ICultureInfoService, CultureInfoService>()
            .AddSingleton <ICacheService, CacheService>()
            .AddSingleton <
                IJsonLocalizationExtensionService <EmbeddedJsonLocalizationOptions>,
                EmbeddedJsonLocalizationExtensionService>();

            switch (serviceLifetime)
            {
            case ServiceLifetime.Singleton:
                services
                .AddSingleton <IStringLocalizerFactory, JsonStringLocalizerFactory>()
                .AddSingleton <IExtensionResolverService, ExtensionResolverService>();
                break;

            case ServiceLifetime.Scoped:
                services
                .AddScoped <IStringLocalizerFactory, JsonStringLocalizerFactory>()
                .AddScoped <IExtensionResolverService, ExtensionResolverService>();
                break;

            case ServiceLifetime.Transient:
            default:
                services
                .AddTransient <IStringLocalizerFactory, JsonStringLocalizerFactory>()
                .AddTransient <IExtensionResolverService, ExtensionResolverService>();
                break;
            }

            var builder = new JsonLocalizationOptionsBuilder();

            if (setupAction != null)
            {
                setupAction.Invoke(builder);
            }
            else
            {
                builder.UseEmbeddedJson();
            }

            services.Configure <JsonLocalizationOptions>(builder.Build);

            return(services);
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Setup default embedded Json support.
 /// </summary>
 /// <param name="builder">The builder to setup.</param>
 /// <returns>The given builder updated with the Json embedded options.</returns>
 public static JsonLocalizationOptionsBuilder UseEmbeddedJson(
     this JsonLocalizationOptionsBuilder builder)
 => builder.UseEmbeddedJson(null);