aboutsummaryrefslogtreecommitdiff
path: root/BackEnd/Timeline
diff options
context:
space:
mode:
Diffstat (limited to 'BackEnd/Timeline')
-rw-r--r--BackEnd/Timeline/Configs/ApplicationConfiguration.cs37
-rw-r--r--BackEnd/Timeline/Program.cs5
-rw-r--r--BackEnd/Timeline/Services/DatabaseManagement/DatabaseManagementService.cs18
-rw-r--r--BackEnd/Timeline/Startup.cs6
-rw-r--r--BackEnd/Timeline/appsettings.Development.json4
-rw-r--r--BackEnd/Timeline/appsettings.json2
6 files changed, 64 insertions, 8 deletions
diff --git a/BackEnd/Timeline/Configs/ApplicationConfiguration.cs b/BackEnd/Timeline/Configs/ApplicationConfiguration.cs
index c7c679d1..bc77fd5a 100644
--- a/BackEnd/Timeline/Configs/ApplicationConfiguration.cs
+++ b/BackEnd/Timeline/Configs/ApplicationConfiguration.cs
@@ -1,4 +1,8 @@
-namespace Timeline.Configs
+using System;
+using System.Collections.Generic;
+using Microsoft.Extensions.Configuration;
+
+namespace Timeline.Configs
{
public static class ApplicationConfiguration
{
@@ -7,5 +11,36 @@
public const string DatabaseFileName = "timeline.db";
public const string DatabaseBackupDirectoryName = "backup";
public const string FrontEndKey = "FrontEnd";
+ public const string DisableAutoBackupKey = "DisableAutoBackup";
+
+ public static bool CheckIsValidBoolString(string? value, string configPath, Boolean defaultValue)
+ {
+ if (value is null)
+ {
+ return defaultValue;
+ }
+
+ var true_strings = new List<string> { "true", "1", "y", "yes", "on" };
+ var false_strings = new List<string> { "false", "0", "n", "no", "off" };
+
+ if (true_strings.Contains(value.ToLowerInvariant()))
+ {
+ return true;
+ }
+ else if (false_strings.Contains(value.ToLowerInvariant()))
+ {
+ return false;
+ }
+ else
+ {
+ throw new Exception($"Invalid boolean value {value} in config {configPath}.");
+ }
+ }
+
+ public static bool GetBoolConfig(IConfiguration configuration, string configPath, bool defaultValue)
+ {
+ var value = configuration.GetValue<string?>(configPath);
+ return CheckIsValidBoolString(value, configPath, defaultValue);
+ }
}
}
diff --git a/BackEnd/Timeline/Program.cs b/BackEnd/Timeline/Program.cs
index 82d0e0ac..2280d80c 100644
--- a/BackEnd/Timeline/Program.cs
+++ b/BackEnd/Timeline/Program.cs
@@ -1,6 +1,7 @@
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
+using System;
using System.Resources;
using System.Threading.Tasks;
@@ -12,6 +13,10 @@ namespace Timeline
{
public async static Task Main(string[] args)
{
+ Console.ForegroundColor = ConsoleColor.Cyan;
+ Console.WriteLine("Hello world!");
+ Console.ResetColor();
+
var host = CreateWebHostBuilder(args).Build();
await host.RunAsync();
diff --git a/BackEnd/Timeline/Services/DatabaseManagement/DatabaseManagementService.cs b/BackEnd/Timeline/Services/DatabaseManagement/DatabaseManagementService.cs
index c3d9ac4e..1ae13724 100644
--- a/BackEnd/Timeline/Services/DatabaseManagement/DatabaseManagementService.cs
+++ b/BackEnd/Timeline/Services/DatabaseManagement/DatabaseManagementService.cs
@@ -1,20 +1,27 @@
using Microsoft.EntityFrameworkCore;
+using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
+using Microsoft.Extensions.Logging;
using System;
using System.Threading;
using System.Threading.Tasks;
+using Timeline.Configs;
using Timeline.Entities;
namespace Timeline.Services.DatabaseManagement
{
public class DatabaseManagementService : IHostedService
{
+ private readonly ILogger<DatabaseManagementService> _logger;
private readonly IServiceProvider _serviceProvider;
+ private readonly bool _disableAutoBackup;
- public DatabaseManagementService(IServiceProvider serviceProvider)
+ public DatabaseManagementService(IServiceProvider serviceProvider, IConfiguration configuration, ILogger<DatabaseManagementService> logger)
{
_serviceProvider = serviceProvider;
+ _disableAutoBackup = ApplicationConfiguration.GetBoolConfig(configuration, ApplicationConfiguration.DisableAutoBackupKey, false);
+ _logger = logger;
}
public async Task StartAsync(CancellationToken cancellationToken = default)
@@ -27,7 +34,14 @@ namespace Timeline.Services.DatabaseManagement
var customMigrator = provider.GetRequiredService<IDatabaseCustomMigrator>();
- await backupService.BackupAsync(cancellationToken);
+ if (!_disableAutoBackup)
+ {
+ await backupService.BackupAsync(cancellationToken);
+ }
+ else
+ {
+ _logger.LogWarning("Auto backup is disabled. Please backup your database manually.");
+ }
await database.Database.MigrateAsync(cancellationToken);
await customMigrator.MigrateAsync(cancellationToken);
}
diff --git a/BackEnd/Timeline/Startup.cs b/BackEnd/Timeline/Startup.cs
index 3f94f8a9..b0713070 100644
--- a/BackEnd/Timeline/Startup.cs
+++ b/BackEnd/Timeline/Startup.cs
@@ -37,6 +37,10 @@ namespace Timeline
public Startup(IConfiguration configuration, IWebHostEnvironment environment)
{
+ // Console.ForegroundColor = ConsoleColor.Green;
+ // Console.WriteLine("We are in environment: " + environment.EnvironmentName);
+ // Console.ResetColor();
+
Environment = environment;
Configuration = configuration;
@@ -51,7 +55,7 @@ namespace Timeline
if (!Enum.TryParse(frontEndModeString, true, out _frontEndMode))
{
_frontEndMode = FrontEndMode.Normal;
- Console.WriteLine("Unknown FrontEnd configuaration value '{0}', fallback to normal.", frontEndModeString);
+ Console.WriteLine("Unknown FrontEnd configuration value '{0}', fallback to normal.", frontEndModeString);
}
}
}
diff --git a/BackEnd/Timeline/appsettings.Development.json b/BackEnd/Timeline/appsettings.Development.json
index a2880cbf..827a2f87 100644
--- a/BackEnd/Timeline/appsettings.Development.json
+++ b/BackEnd/Timeline/appsettings.Development.json
@@ -1,9 +1,7 @@
{
"Logging": {
"LogLevel": {
- "Default": "Debug",
- "System": "Information",
- "Microsoft": "Information"
+ "Default": "Debug"
}
}
}
diff --git a/BackEnd/Timeline/appsettings.json b/BackEnd/Timeline/appsettings.json
index 0804371b..c12206f7 100644
--- a/BackEnd/Timeline/appsettings.json
+++ b/BackEnd/Timeline/appsettings.json
@@ -1,7 +1,7 @@
{
"Logging": {
"LogLevel": {
- "Default": "Warning"
+ "Default": "Information"
}
}
}