@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.LiebUserId).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 }
}
Date

@_startTime.DateTime.ToLongDateString()

Time

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

Organizer

@_raid.Organizer

Guild

@_raid.Guild

Voice chat

@_raid.VoiceChat

@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; protected override async Task OnParametersSetAsync() { _isRaidSignUpAllowed = _user != null && RaidService.IsRaidSignUpAllowed(_user.LiebUserId, _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.LiebUserId); _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); } }