@page "/admin/system/diagnose" @using Microsoft.AspNetCore.Authorization @using MoonCore.Blazor.FlyonUi.Helpers @using MoonCore.Helpers @using Moonlight.Client.UI.Components @using Moonlight.Shared.Http.Requests.Admin.Sys @using Moonlight.Shared.Http.Responses.Admin.Sys @attribute [Authorize(Policy = "permissions:admin.system.diagnose")] @inject HttpApiClient ApiClient @inject DownloadService DownloadService
Report

With the button below you can create a diagnose report containing all important information to troubleshoot your moonlight instance and its modules. The diagnose file is a zip containing different logs and censored config files which can be shared with our support on discord. If you only want to export specific parts of the diagnose report, click on "Advanced" and select the desired providers

Generate report
Advanced @if (DropdownOpen) { } else { }
@foreach (var item in AvailableProviders) {
}
@code { private bool DropdownOpen = false; private Dictionary AvailableProviders; private bool SelectAll { get => AvailableProviders.Values.All(v => v); set { foreach (var k in AvailableProviders.Keys) AvailableProviders[k] = value; } } private async Task Load(LazyLoader arg) { var providers = await ApiClient.GetJson( "api/admin/system/diagnose/providers" ); AvailableProviders = providers .ToDictionary(x => x, _ => true); } private async Task GenerateDiagnose(WButton _) { var request = new GenerateDiagnoseRequest(); if (!SelectAll) { // Filter the providers which have been selected if not all providers have been selected request.Providers = AvailableProviders .Where(x => x.Value) .Select(x => x.Key.Type) .ToArray(); } var stream = await ApiClient.PostStream("api/admin/system/diagnose", request); await DownloadService.Download("diagnose.zip", stream); } private async Task ToggleDropDown() { DropdownOpen = !DropdownOpen; await InvokeAsync(StateHasChanged); } }