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