diff options
Diffstat (limited to 'BackEnd/Timeline')
-rw-r--r-- | BackEnd/Timeline/Configs/ApplicationConfiguration.cs | 37 | ||||
-rw-r--r-- | BackEnd/Timeline/Program.cs | 5 | ||||
-rw-r--r-- | BackEnd/Timeline/Services/DatabaseManagement/DatabaseManagementService.cs | 18 | ||||
-rw-r--r-- | BackEnd/Timeline/Startup.cs | 6 | ||||
-rw-r--r-- | BackEnd/Timeline/appsettings.Development.json | 4 | ||||
-rw-r--r-- | BackEnd/Timeline/appsettings.json | 2 |
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"
}
}
}
|