using NetAdmin.Application.Services;
using NetAdmin.Domain.Dto.Sys.Tool;
using NetAdmin.SysComponent.Application.Services.Sys.Dependency;
namespace NetAdmin.SysComponent.Application.Services.Sys;
///
public sealed class ToolsService : ServiceBase, IToolsService
{
///
public async Task GetChangeLogAsync()
{
await using var stream = Assembly.GetEntryAssembly()!.GetManifestResourceStream("CHANGELOG.md");
using var streamReader = new StreamReader(stream!);
return await streamReader.ReadToEndAsync().ConfigureAwait(false);
}
///
public Task> GetModulesAsync()
{
return Task.FromResult>(AppDomain.CurrentDomain.GetAssemblies()
.Select(x => {
var asm = x.GetName();
return new GetModulesRsp {
Name = asm.Name
, Version = asm.Version?.ToString()
};
})
.OrderBy(x => x.Name));
}
///
public Task GetServerUtcTimeAsync()
{
return Task.FromResult(DateTime.UtcNow);
}
///
public Task GetVersionAsync()
{
return Task.FromResult(GlobalStatic.ProductVersion);
}
}