diff --git a/Lieb/Pages/Raids/RaidOverview.razor b/Lieb/Pages/Raids/RaidOverview.razor index 8df4cac..76fecd4 100644 --- a/Lieb/Pages/Raids/RaidOverview.razor +++ b/Lieb/Pages/Raids/RaidOverview.razor @@ -25,6 +25,18 @@ To: + RaidGroup: +
@@ -42,6 +54,7 @@ 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() @@ -55,18 +68,40 @@ } _raids = RaidService.GetRaids(); - _raidsToShow = _raids.Where(r => r.StartTimeUTC > _startDate && r.StartTimeUTC < _endDate).ToList(); + ApplyFilter(); } private void StartFilterChanged(ChangeEventArgs e) { _startDate = DateTime.Parse(e.Value.ToString()); - _raidsToShow = _raids.Where(r => r.StartTimeUTC > _startDate && r.StartTimeUTC < _endDate).ToList(); + ApplyFilter(); } - + private void EndFilterChanged(ChangeEventArgs e) { _endDate = DateTime.Parse(e.Value.ToString()).AddDays(1).AddSeconds(-1); - _raidsToShow = _raids.Where(r => r.StartTimeUTC > _startDate && r.StartTimeUTC < _endDate).ToList(); + 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(); + } } }