diff --git a/GameData.UnitTests/UnitTest1.cs b/GameData.UnitTests/UnitTest1.cs
index 19e71d1..edc82e8 100644
--- a/GameData.UnitTests/UnitTest1.cs
+++ b/GameData.UnitTests/UnitTest1.cs
@@ -14,7 +14,7 @@ namespace GameData.UnitTests
[Test]
public void Test1()
{
- var client = new ExpenseRepository();
+ var client = new ExpenseRepository(null);
var test = client.GetAll();
}
}
diff --git a/GameData/GameData.csproj b/GameData/GameData.csproj
index 8d810f8..ac88806 100644
--- a/GameData/GameData.csproj
+++ b/GameData/GameData.csproj
@@ -8,6 +8,7 @@
+
diff --git a/GameData/Repository/ExpenseRepository.cs b/GameData/Repository/ExpenseRepository.cs
index 4049940..41c0e5f 100644
--- a/GameData/Repository/ExpenseRepository.cs
+++ b/GameData/Repository/ExpenseRepository.cs
@@ -1,5 +1,7 @@
using GameModel;
using GameModel.Contract;
+using GameModel.Settings;
+using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -10,13 +12,18 @@ namespace GameData.Repository
{
public class ExpenseRepository : IExpenseRepository
{
+ readonly ILogger _log;
private ApiClient _client;
-
+ private AppSettings _appSettings;
string Url => "items/expense";
- public ExpenseRepository()
+ public ExpenseRepository(ILogger log, AppSettings appSettings)
{
+ _appSettings = appSettings;
+ _log = log;
_client = new ApiClient();
+
+ _log?.LogWarning("TESTWARN");
}
public IEnumerable GetAll()
diff --git a/GameModel/Settings/AppSettings.cs b/GameModel/Settings/AppSettings.cs
index e033ce6..6e2b24f 100644
--- a/GameModel/Settings/AppSettings.cs
+++ b/GameModel/Settings/AppSettings.cs
@@ -8,6 +8,6 @@ namespace GameModel.Settings
{
public class AppSettings
{
- public string Test { get; set; }
+ public string ApiToken { get; set; }
}
}
diff --git a/KoogleCli/KoogleCli.csproj b/KoogleCli/KoogleCli.csproj
index 8255d0c..57f0999 100644
--- a/KoogleCli/KoogleCli.csproj
+++ b/KoogleCli/KoogleCli.csproj
@@ -18,11 +18,15 @@
+
-
+
+
+
+
diff --git a/KoogleCli/Program.cs b/KoogleCli/Program.cs
index 1a2d38c..4589338 100644
--- a/KoogleCli/Program.cs
+++ b/KoogleCli/Program.cs
@@ -1,5 +1,7 @@
// See https://aka.ms/new-console-template for more information
using Autofac;
+using Autofac.Core;
+using AutofacSerilogIntegration;
using CommandLine;
using GameData;
using GameData.Repository;
@@ -13,7 +15,8 @@ using GameModel.Settings;
using KoogleCli.Model;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
-using Microsoft.Extensions.Options;
+using Microsoft.Extensions.Logging;
+using Serilog;
using Spectre.Console;
using Spectre.Console.Json;
using static System.Runtime.InteropServices.JavaScript.JSType;
@@ -28,9 +31,12 @@ AnsiConsole.MarkupLine("Welcome to [green]koogle[/]");
var container = Register();
-var serviceCollection = new ServiceCollection();
+//var serviceCollection = new ServiceCollection();
//serviceCollection.AddLogging();
+var loggerFactory = container.Resolve();
+loggerFactory.AddSerilog();
+
var scope = container.BeginLifetimeScope(RootLifetimeTag, b =>
{
@@ -40,37 +46,18 @@ var scope = container.BeginLifetimeScope(RootLifetimeTag, b =>
Autofac.IContainer Register()
{
-
- var configurationBuilder = new ConfigurationBuilder()
- .SetBasePath(AppDomain.CurrentDomain.BaseDirectory)
- .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
- //.AddXmlFile("appsettings.xml", optional: true, reloadOnChange: true)
- //.AddEnvironmentVariables()
- //.AddCommandLine(args);
- ;
-
- // Add your custom configuration provider here if needed
- // .Add(new CustomConfigurationSource());
-
- IConfiguration configuration = configurationBuilder.Build();
-
-
-
- var someSettings = configuration.GetSection(typeof(AppSettings).Name).Get();
-
-
var builder = new ContainerBuilder();
- builder.RegisterInstance(someSettings);
+
+ //builder.Populate(serviceCollection);
+ RegisterAppsettings(builder);
+
+ RegisterLogging(builder);
+
builder.RegisterType().As();
return builder.Build();
}
-
-var test = container.Resolve();
-Console.WriteLine( test.Test);
-Console.ReadLine();
-
ShowMainMenu();
void ShowMainMenu()
{
@@ -135,7 +122,7 @@ void NewGameAction()
void StartGameAction(string gameName)
{
- _gs = new GameService();
+ _gs = new GameService(container);
var bs = _gs.Start(new[] { 1,2,3,4}, GetGameSettings(gameName), gameName );
@@ -335,4 +322,39 @@ static void GetRow(int row, out Text text1, out Text text2, out Text text3, out
//pacCol3 = new Padder(text3); //.PadLeft(16).PadBottom(0).PadTop(0);
//padCol4 = new Padder(text4); //.PadLeft(16).PadBottom(0).PadTop(0);
//padCol5 = new Padder(text5); //.PadLeft(16).PadBottom(0).PadTop(0);
+}
+
+static void RegisterAppsettings(ContainerBuilder builder)
+{
+ var configurationBuilder = new ConfigurationBuilder()
+ .SetBasePath(AppDomain.CurrentDomain.BaseDirectory)
+ .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
+ //.AddXmlFile("appsettings.xml", optional: true, reloadOnChange: true)
+ //.AddEnvironmentVariables()
+ //.AddCommandLine(args);
+ ;
+
+ // Add your custom configuration provider here if needed
+ // .Add(new CustomConfigurationSource());
+
+ IConfiguration configuration = configurationBuilder.Build();
+ var someSettings = configuration.GetSection(typeof(AppSettings).Name).Get();
+ builder.RegisterInstance(someSettings);
+}
+
+static void RegisterLogging(ContainerBuilder builder)
+{
+ string basedir = AppDomain.CurrentDomain.BaseDirectory;
+
+ // create root logger
+ Log.Logger = new LoggerConfiguration()
+ .WriteTo.File(basedir + "/Logs/log-.txt", rollingInterval: RollingInterval.Day)
+ .CreateLogger();
+
+ // https://stackoverflow.com/questions/41414796/how-to-get-microsoft-extensions-loggingt-in-console-application-using-serilog
+ builder.RegisterInstance(new LoggerFactory())
+ .As();
+ builder.RegisterGeneric(typeof(Logger<>))
+ .As(typeof(ILogger<>))
+ .SingleInstance();
}
\ No newline at end of file
diff --git a/KoogleCli/appsettings.json b/KoogleCli/appsettings.json
index 7700910..e2eb482 100644
--- a/KoogleCli/appsettings.json
+++ b/KoogleCli/appsettings.json
@@ -1,5 +1,5 @@
{
"AppSettings": {
- "Test": "value"
+ "ApiToken": "LT9iPa1EuaaRB0h2VL45fVPLLK7Rt0wb"
}
}