public virtual IResolvedLocalizationOptions Resolve(LocalizationOptions localizationOptions) { if (localizationOptions == null) { throw new ArgumentNullException(nameof(localizationOptions)); } this.EmbeddedResourceAssembliesValidator.Validate(localizationOptions.EmbeddedResourceAssemblies); IAssembly[] embeddedResourceAssemblies; try { embeddedResourceAssemblies = this.AssemblyHelper.Find(localizationOptions.EmbeddedResourceAssemblies).ToArray(); } catch (Exception exception) { throw new InvalidOperationException($"{Validation.EmbeddedResourceAssembliesValidator.ExceptionMessagePrefix}The patterns-collection contains invalid values. Values: {localizationOptions.EmbeddedResourceAssemblies.ToCommaSeparatedArgumentString()}", exception); } this.EmbeddedResourceAssembliesValidator.Validate(embeddedResourceAssemblies); var fileResourcesDirectory = this.ResolveFileResourcesDirectory(localizationOptions); return(new ResolvedLocalizationOptions(embeddedResourceAssemblies, fileResourcesDirectory, localizationOptions)); }
protected internal virtual IDirectoryInfo ResolveFileResourcesDirectory(LocalizationOptions localizationOptions) { IDirectoryInfo fileResourcesDirectory = null; var path = localizationOptions?.FileResourcesDirectoryPath?.Trim(this.FileSystem.Path.AltDirectorySeparatorChar, this.FileSystem.Path.DirectorySeparatorChar); // ReSharper disable InvertIf if (path != null) { if (!this.FileSystem.Path.IsPathRooted(path)) { path = this.FileSystem.Path.Combine(this.HostEnvironment.ContentRootPath, path); } fileResourcesDirectory = this.FileSystem.DirectoryInfo.FromDirectoryName(path); } // ReSharper restore InvertIf this.FileResourcesDirectoryValidator.Validate(fileResourcesDirectory); return(fileResourcesDirectory); }
public ResolvedLocalizationOptions(IEnumerable <IAssembly> embeddedResourceAssemblies, IDirectoryInfo fileResourcesDirectory, LocalizationOptions localizationOptions) { this.EmbeddedResourceAssemblies = embeddedResourceAssemblies ?? throw new ArgumentNullException(nameof(embeddedResourceAssemblies)); this.FileResourcesDirectory = fileResourcesDirectory; this.LocalizationOptions = localizationOptions ?? throw new ArgumentNullException(nameof(localizationOptions)); }