using Events.FilesAPI.Infrastructure.Files; using Events.FilesAPI.Infrastructure.Options; using Microsoft.Extensions.Options; namespace Events.FilesAPI.Features.RegistrationsExcel.Download; public sealed class RegistrationsExcelFileLocator( IHostEnvironment hostEnvironment, IOptions generatedFilesOptions) { public GeneratedFileReference? TryGet(int eventId) { string rootPath = Path.IsPathRooted(generatedFilesOptions.Value.OutputPath) ? generatedFilesOptions.Value.OutputPath : Path.GetFullPath(Path.Combine(hostEnvironment.ContentRootPath, generatedFilesOptions.Value.OutputPath)); string excelPath = Path.Combine(rootPath, $"{eventId}.xlsx"); if (!File.Exists(excelPath)) return null; return new GeneratedFileReference { FileName = Path.GetFileName(excelPath), PhysicalPath = excelPath }; } }