private static async Task <int> Main(string[] args) { Console.WriteLine(value: "Credfeto.Gallery.OutputBuilder"); AlterPriority(); ServiceCollection serviceCollection = Startup.RegisterServices(args); ServiceProvider serviceProvider = serviceCollection.BuildServiceProvider(); ILoggerFactory loggerFactory = serviceProvider.GetRequiredService <ILoggerFactory>(); loggerFactory.AddSerilog(); ILogger logging = loggerFactory.CreateLogger(categoryName: "Credfeto.Gallery.OutputBuilder"); ISettings settings = serviceProvider.GetService <ISettings>(); IImageSettings imageSettings = serviceProvider.GetService <IImageSettings>(); logging.LogInformation($"Source: {settings.RootFolder}"); logging.LogInformation($"Output: {settings.DatabaseOutputFolder}"); logging.LogInformation($"Credfeto.Gallery.Image: {settings.ImagesOutputPath}"); logging.LogInformation($"Thumb: {imageSettings.ThumbnailSize}"); foreach (int resize in imageSettings.ImageMaximumDimensions) { logging.LogInformation($"Resize: {resize}"); } try { IShortUrls shortUrls = serviceProvider.GetService <IShortUrls>(); await shortUrls.LoadAsync(); IImageLoader imageLoader = serviceProvider.GetService <IImageLoader>(); logging.LogInformation($"Supported Extensions: {string.Join(separator: ", ", values: imageLoader.SupportedExtensions)}"); IGalleryBuilder galleryBuilder = serviceProvider.GetService <IGalleryBuilder>(); await galleryBuilder.ProcessGalleryAsync(imageSettings); return(0); } catch (Exception exception) { Console.WriteLine(format: "Error: {0}", arg0: exception.Message); Console.WriteLine(format: "Stack Trace: {0}", arg0: exception.StackTrace); return(1); } finally { IBrokenImageTracker brokenImageTracker = serviceProvider.GetService <IBrokenImageTracker>(); await DumpBrokenImagesAsync(brokenImageTracker : brokenImageTracker, settings : settings, logging : logging); } }
private static async Task DumpBrokenImagesAsync(IBrokenImageTracker brokenImageTracker, ISettings settings, ILogger logging) { string[] images = brokenImageTracker.AllBrokenImages(); await File.WriteAllLinesAsync(path : settings.BrokenImagesFile, contents : images, encoding : Encoding.UTF8); logging.LogInformation($"Broken Credfeto.Gallery.Image: {images.Length}"); }
public GalleryBuilder(IImageExtraction imageExtraction, IRebuildDetection rebuildDetection, IShortUrls shortUrls, ILimitedUrlShortener limitedUrlShortener, IBrokenImageTracker brokenImageTracker, ISettings settings, ILogger <GalleryBuilder> logging) { this._imageExtraction = imageExtraction; this._rebuildDetection = rebuildDetection; this._shortUrls = shortUrls; this._limitedUrlShortener = limitedUrlShortener; this._brokenImageTracker = brokenImageTracker; this._settings = settings; this._logging = logging; }