using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Options;
using SixLabors.ImageSharp.Web.Caching;
using Umbraco.Cms.Core.Configuration.Models;
using Umbraco.Cms.Core.Extensions;
namespace Umbraco.Cms.Imaging.ImageSharp;
///
/// Configures the ImageSharp physical file system cache options.
///
///
public sealed class ConfigurePhysicalFileSystemCacheOptions : IConfigureOptions
{
private readonly IHostEnvironment _hostEnvironment;
private readonly ImagingSettings _imagingSettings;
///
/// Initializes a new instance of the class.
///
/// The Umbraco imaging settings.
/// The host environment.
public ConfigurePhysicalFileSystemCacheOptions(
IOptions imagingSettings,
IHostEnvironment hostEnvironment)
{
_imagingSettings = imagingSettings.Value;
_hostEnvironment = hostEnvironment;
}
///
public void Configure(PhysicalFileSystemCacheOptions options)
{
options.CacheFolder = _hostEnvironment.MapPathContentRoot(_imagingSettings.Cache.CacheFolder);
options.CacheFolderDepth = _imagingSettings.Cache.CacheFolderDepth;
}
}