예제 #1
0
        public static JsonFileLocalizationSettings GetSettings(CultureSuffixStrategy strategy)
        {
            var environment = Substitute.For <IHostingEnvironment>();

            environment.ContentRootPath.Returns(Directory.GetCurrentDirectory());
            var options = Substitute.For <IOptions <JsonLocalizationOptions> >();

            options.Value.Returns(new JsonLocalizationOptions()
            {
                CultureSuffixStrategy = strategy,
                ResourceRelativePath  = "Resources"
            });
            var settings = new JsonFileLocalizationSettings(environment, options);

            return(settings);
        }
 public JsonFileResourceManager(
     JsonFileLocalizationSettings settings,
     ILoggerFactory loggerFactory)
 {
     _settings      = settings ?? throw new ArgumentNullException(nameof(settings));
     _loggerFactory = loggerFactory ?? throw new ArgumentNullException(nameof(loggerFactory));
     _logger        = loggerFactory.CreateLogger <JsonFileResourceManager>();
     if (settings.WatchForChanges)
     {
         _resourceFileWatcher = new FileSystemWatcher(settings.ResourcesPath)
         {
             EnableRaisingEvents   = true,
             NotifyFilter          = NotifyFilters.LastWrite | NotifyFilters.CreationTime | NotifyFilters.Size,
             IncludeSubdirectories = true,
             Filter = "*.json"
         };
         _resourceFileWatcher.Changed += ResourceFileWatcherOnChanged;
     }
 }