using System.IO.Abstractions; using Recyclarr.TrashLib.Startup; namespace Recyclarr.TrashLib.Repo; public class RepoMetadataBuilder : IRepoMetadataBuilder { private readonly IAppPaths _paths; private readonly Lazy _metadata; public RepoMetadataBuilder( IRepoMetadataParser parser, IAppPaths paths) { _paths = paths; _metadata = new Lazy(parser.Deserialize); } public IReadOnlyList ToDirectoryInfoList(IEnumerable listOfDirectories) { return listOfDirectories.Select(x => _paths.RepoDirectory.SubDirectory(x)).ToList(); } public IDirectoryInfo DocsDirectory => _paths.RepoDirectory.SubDirectory("docs"); public RepoMetadata GetMetadata() { return _metadata.Value; } }