@using System.Security.Claims @using Lieb.Data @using Lieb.Models @using Lieb.Models.GuildWars2.Raid @inject UserService UserService @inject RaidService RaidService @inject TimeZoneService TimeZoneService @inject RaidRandomizerService RaidRandomizerService @inject NavigationManager NavigationManager
@_raid.Title @if (_user != null && _isRaidSignUpAllowed) {
@if(_raid.SignUps.Where(s => s.LiebUserId == _user.Id && s.SignUpType != SignUpType.SignedOff && s.LiebUserId > 0).Any()) { You are signed up } else if(_raid.SignUps.Where(s => s.SignUpType == SignUpType.SignedUp).Count() < _raid.Roles.Sum(r => r.Spots)) { You can sign up } else { The raid is full }
}
@if(_endTime - _startTime > new TimeSpan(24,0,0)) {
From

@_startTime.DateTime.ToLongDateString() @_startTime.DateTime.ToShortTimeString()

To

@_endTime.DateTime.ToLongDateString() @_endTime.DateTime.ToShortTimeString()

} else {
Date

@_startTime.DateTime.ToLongDateString()

Time

from: @_startTime.DateTime.ToShortTimeString() to: @_endTime.DateTime.ToShortTimeString()

}
Type

@_raid.EventType

@if (!_isCollapsed) {
Organizer

@_raid.Organizer

Guild

@_raid.Guild

Voice chat

@_raid.VoiceChat

@if (_raid.RaidOwnerId == _user.Id || _user.RoleAssignments.Max(a => a.LiebRole.Level) >= Constants.RaidEditPowerLevel) { @if (_raid.RaidType != RaidType.Planned) { } }
} @code { [Parameter] public Raid _raid { get; set; } [Parameter] public LiebUser? _user { get; set; } bool _isRaidSignUpAllowed; string _errorMessage; private DateTimeOffset _startTime; private DateTimeOffset _endTime; private DateTimeOffset _freeForAllTime; bool _isCollapsed = true; protected override async Task OnParametersSetAsync() { _isRaidSignUpAllowed = _user != null && RaidService.IsRaidSignUpAllowed(_user.Id, _raid.RaidId, out _errorMessage); _startTime = await TimeZoneService.GetLocalDateTime(_raid.StartTimeUTC); _endTime = await TimeZoneService.GetLocalDateTime(_raid.EndTimeUTC); _freeForAllTime = await TimeZoneService.GetLocalDateTime(_raid.FreeForAllTimeUTC); } async Task SignOffClicked() { await RaidService.SignOff(_raid.RaidId, _user.Id); _raid = RaidService.GetRaid(_raid.RaidId); } async Task EditClicked() { NavigationManager.NavigateTo($"raidedit/{_raid.RaidId}"); } async Task RandomizeClicked() { await RaidRandomizerService.RandomizeRaid(_raid.RaidId); _raid = RaidService.GetRaid(_raid.RaidId); } public void HasChanged() { _raid = RaidService.GetRaid(_raid.RaidId); this.StateHasChanged(); } }