From 29ae9157ca6a0900ffcc10d7fb08e750d8f0aad2 Mon Sep 17 00:00:00 2001 From: Pat Hartl Date: Thu, 17 Aug 2023 19:06:23 -0500 Subject: [PATCH] Read log file on console load --- .../Pages/Servers/Components/Console.razor | 8 ++++++++ LANCommander/Program.cs | 1 + LANCommander/Services/ServerLogService.cs | 20 +++++++++++++++++++ 3 files changed, 29 insertions(+) create mode 100644 LANCommander/Services/ServerLogService.cs diff --git a/LANCommander/Pages/Servers/Components/Console.razor b/LANCommander/Pages/Servers/Components/Console.razor index 9db47dc..4032b97 100644 --- a/LANCommander/Pages/Servers/Components/Console.razor +++ b/LANCommander/Pages/Servers/Components/Console.razor @@ -2,6 +2,7 @@ @using NLog; @using XtermBlazor @inject ServerService ServerService +@inject ServerLogService ServerLogService @inject ServerProcessService ServerProcessService @inject NavigationManager NavigationManager @implements IAsyncDisposable @@ -49,6 +50,13 @@ if (Terminal != null) await Terminal.InvokeAddonFunctionVoidAsync("xterm-addon-fit", "fit"); + + var log = await ServerLogService.ReadLog(ServerLogId); + + foreach (var line in log) + { + await Terminal.WriteLine(line); + } } } diff --git a/LANCommander/Program.cs b/LANCommander/Program.cs index 9a09cd7..c046b15 100644 --- a/LANCommander/Program.cs +++ b/LANCommander/Program.cs @@ -122,6 +122,7 @@ builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddScoped(); +builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddSingleton(); diff --git a/LANCommander/Services/ServerLogService.cs b/LANCommander/Services/ServerLogService.cs new file mode 100644 index 0000000..a7e2e8d --- /dev/null +++ b/LANCommander/Services/ServerLogService.cs @@ -0,0 +1,20 @@ +using LANCommander.Data; +using LANCommander.Data.Models; +using System.Diagnostics; + +namespace LANCommander.Services +{ + public class ServerLogService : BaseDatabaseService + { + public ServerLogService(DatabaseContext dbContext, IHttpContextAccessor httpContextAccessor) : base(dbContext, httpContextAccessor) { } + + public async Task ReadLog(Guid logId) + { + var log = await Get(logId); + + var logPath = Path.Combine(log.Server.WorkingDirectory, log.Path); + + return await File.ReadAllLinesAsync(logPath); + } + } +}