diff --git a/PhotoRenamer/PhotoRenamer.csproj b/PhotoRenamer/PhotoRenamer.csproj index 35dc73c..52e0aca 100644 --- a/PhotoRenamer/PhotoRenamer.csproj +++ b/PhotoRenamer/PhotoRenamer.csproj @@ -13,6 +13,7 @@ + diff --git a/PhotoRenamer/Program.cs b/PhotoRenamer/Program.cs index eafba68..dab416a 100644 --- a/PhotoRenamer/Program.cs +++ b/PhotoRenamer/Program.cs @@ -1,19 +1,35 @@ using System; using System.IO; -using System.Threading.Tasks; using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Logging; namespace PhotoRenamer { - class Program + internal static class Program { - private static async Task Main(string[] args) + private static int Main(string[] args) { - var Configuration = new ConfigurationBuilder() - .SetBasePath(Directory.GetCurrentDirectory()) - .AddJsonFile(AppDomain.CurrentDomain.BaseDirectory + "\\appsettings.json", optional: true, reloadOnChange: true) - .AddEnvironmentVariables() - .Build(); + var configuration = CreateHostBuilder(args).Build(); + var loggerFactory = LoggerFactory.Create(builder => builder.AddConsole()); + var logger = loggerFactory.CreateLogger(nameof(Program)); + try + { + var p = new Renamer(configuration, loggerFactory); + return p.Run(); + } + catch (Exception e) + { + logger.LogError(e, "Error executing program"); + return -1; + } } + + public static IConfigurationBuilder CreateHostBuilder(string[] args) => new ConfigurationBuilder() + .SetBasePath(Directory.GetCurrentDirectory()) + .AddJsonFile(AppDomain.CurrentDomain.BaseDirectory + "\\appsettings.json", optional: true, + reloadOnChange: true) + .AddEnvironmentVariables() + .AddCommandLine(args); + } } diff --git a/PhotoRenamer/Renamer.cs b/PhotoRenamer/Renamer.cs new file mode 100644 index 0000000..9439b3d --- /dev/null +++ b/PhotoRenamer/Renamer.cs @@ -0,0 +1,27 @@ +using System; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Logging; + +namespace PhotoRenamer +{ + internal class Renamer + { + private readonly IConfigurationRoot _configuration; + private readonly ILogger _logger; + + public Renamer(IConfigurationRoot configuration, ILoggerFactory loggerFactory) + { + _configuration = configuration; + _logger = loggerFactory.CreateLogger(); + } + + public int Run() + { + var sourcePath = _configuration["Source"]; + var targetPath = _configuration["Target"]; + _logger.LogInformation($"Source path {sourcePath}"); + _logger.LogInformation($"Target path {targetPath}"); + return 0; + } + } +} \ No newline at end of file diff --git a/PhotoRenamer/appsettings.json b/PhotoRenamer/appsettings.json new file mode 100644 index 0000000..8593c62 --- /dev/null +++ b/PhotoRenamer/appsettings.json @@ -0,0 +1,2 @@ +{ +} \ No newline at end of file