33 lines
972 B
C#
33 lines
972 B
C#
using Microsoft.AspNetCore.Mvc;
|
|
using Moonlight.Api.Services;
|
|
using Moonlight.Shared.Http.Responses.Admin;
|
|
|
|
namespace Moonlight.Api.Http.Controllers.Admin;
|
|
|
|
[ApiController]
|
|
[Route("api/admin/system")]
|
|
public class SystemController : Controller
|
|
{
|
|
private readonly ApplicationService ApplicationService;
|
|
|
|
public SystemController(ApplicationService applicationService)
|
|
{
|
|
ApplicationService = applicationService;
|
|
}
|
|
|
|
[HttpGet("info")]
|
|
public async Task<ActionResult<SystemInfoDto>> GetInfoAsync()
|
|
{
|
|
var cpuUsage = await ApplicationService.GetCpuUsageAsync();
|
|
var memoryUsage = await ApplicationService.GetMemoryUsageAsync();
|
|
|
|
return new SystemInfoDto(
|
|
cpuUsage,
|
|
memoryUsage,
|
|
ApplicationService.OperatingSystem,
|
|
DateTimeOffset.UtcNow - ApplicationService.StartedAt,
|
|
ApplicationService.VersionName,
|
|
ApplicationService.IsUpToDate
|
|
);
|
|
}
|
|
} |