@page "/raidlogs" @page "/raidlogs/{_selectedLogFolder}" @using Lieb.Data @using Lieb.Models @using Lieb.Models.GuildWars2 @using System.Security.Claims @inject UserService UserService @inject NavigationManager NavigationManager @inject AuthenticationStateProvider AuthenticationStateProvider

Raid Logs


@foreach(string logFolder in _availabeLogs) { string path = $"{LOGS}/{_selectedLogFolder}/{logFolder}/index.html"; @logFolder } @code { [Parameter] public string _selectedLogFolder { get; set; } = "Training"; private const string TRAINING = "Training"; private const string RANDOM = "Random"; private const string LOGS = "logs"; private const string LOG_DIR = $"wwwroot/{LOGS}"; private LiebUser _user; private List _logGroups = new List(); private List _availabeLogs = new List(); protected override async Task OnInitializedAsync() { if(string.IsNullOrEmpty(_selectedLogFolder)) { _selectedLogFolder = "Training"; } var authState = await AuthenticationStateProvider.GetAuthenticationStateAsync(); ulong discordId = ulong.Parse(authState.User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier).Value); _user = UserService.GetLiebUser(discordId); _logGroups = Directory.EnumerateDirectories(LOG_DIR).Select(d => Path.GetFileName(d)).ToList(); _availabeLogs = Directory.EnumerateDirectories($"{LOG_DIR}/{_selectedLogFolder}").Select(d => Path.GetFileName(d)).OrderByDescending(s => s).ToList(); } async Task ChangeShownLogs( ChangeEventArgs e) { _selectedLogFolder = e.Value.ToString(); NavigationManager.NavigateTo($"/raidlogs/{_selectedLogFolder}"); _availabeLogs = Directory.EnumerateDirectories($"{LOG_DIR}/{_selectedLogFolder}").Select(d => Path.GetFileName(d)).OrderByDescending(s => s).ToList(); } }