Files
Moonlight/Moonlight/Features/Servers/UI/UserViews/Files.razor
2024-02-06 11:12:04 +01:00

47 lines
1.3 KiB
Plaintext

@using Moonlight.Core.Configuration
@using Moonlight.Core.Services.Utils
@using Moonlight.Features.FileManager.Models.Abstractions.FileAccess
@using Moonlight.Features.Servers.Entities
@using Moonlight.Features.ServiceManagement.Entities
@using MoonCore.Services
@using Moonlight.Features.FileManager.UI.Components
@using Moonlight.Features.Servers.Helpers
@inject JwtService JwtService
@inject ConfigService<ConfigV1> ConfigService
@implements IDisposable
<LazyLoader Load="Load" ShowAsCard="true">
<FileManager FileAccess="FileAccess" />
</LazyLoader>
@code
{
[CascadingParameter] public Service Service { get; set; }
[CascadingParameter] public Server Server { get; set; }
private IFileAccess FileAccess;
private async Task Load(LazyLoader lazyLoader)
{
var ftpLoginJwt = await JwtService.Create(data =>
{
data.Add("ServerId", Server.Id.ToString());
}, "FtpServerLogin", TimeSpan.FromMinutes(5));
FileAccess = new ServerFtpFileAccess(
Server.Node.Fqdn,
Server.Node.FtpPort,
$"moonlight.{Server.Id}",
ftpLoginJwt,
ConfigService.Get().FileManager.OperationTimeout
);
}
public void Dispose()
{
FileAccess.Dispose();
}
}