@page "/raidoverview" @using Lieb.Data @using System.Security.Claims @using Lieb.Models @using Lieb.Models.GuildWars2.Raid @inject RaidService RaidService @inject UserService UserService @inject AuthenticationStateProvider AuthenticationStateProvider

Raid Overview



@foreach (var raid in _raidsToShow.OrderBy(r => r.StartTimeUTC)) {
} @code { private List _raids; private LiebUser? _user; private DateTime _startDate = DateTime.Now.Date; private DateTime _endDate = DateTime.Now.Date.AddDays(15).AddSeconds(-1); private string _filterRole = string.Empty; private List _raidsToShow; protected override async Task OnInitializedAsync() { var authState = await AuthenticationStateProvider.GetAuthenticationStateAsync(); if (authState.User.Identity.IsAuthenticated) { ulong discordId = ulong.Parse(authState.User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier).Value); _user = UserService.GetLiebUser(discordId); } _raids = RaidService.GetRaids(); ApplyFilter(); } private void StartFilterChanged(ChangeEventArgs e) { if(!DateTime.TryParse(e.Value.ToString(), out _startDate)) { _startDate = DateTime.UnixEpoch; } ApplyFilter(); } private void EndFilterChanged(ChangeEventArgs e) { if(DateTime.TryParse(e.Value.ToString(), out _endDate)) { _endDate.AddDays(1).AddSeconds(-1); } else { _endDate = DateTime.MaxValue.Date; } ApplyFilter(); } private void GroupFilterChanged(ChangeEventArgs e) { _filterRole = e.Value?.ToString(); ApplyFilter(); } private void ApplyFilter() { if(String.IsNullOrEmpty(_filterRole)) { _raidsToShow = _raids.Where(r => r.StartTimeUTC > _startDate && r.StartTimeUTC < _endDate).ToList(); } else if(_filterRole == "No Group") { _raidsToShow = _raids.Where(r => r.StartTimeUTC > _startDate && r.StartTimeUTC < _endDate && string.IsNullOrEmpty(r.RequiredRole)).ToList(); } else { _raidsToShow = _raids.Where(r => r.StartTimeUTC > _startDate && r.StartTimeUTC < _endDate && r.RequiredRole == _filterRole).ToList(); } } }