@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
@_raid.Title
@_raid.Description
Date

@_startTime.DateTime.ToLongDateString()

Time

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

Organizer

@_raid.Organizer

Guild

@_raid.Guild

Voice chat

@_raid.VoiceChat

@if(_isRaidSignUpAllowed) { if(_raid.RaidType == RaidType.Planned) { } else { } } else { } @if(_raid.RaidType != RaidType.Planned && !_raid.IsRandomized) { } @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 SignUpClicked(PlannedRaidRole role, LiebUser liebUser, bool isSignedUp, SignUpType signUpType) { if(isSignedUp) { await RaidService.ChangeSignUpType(_raid.RaidId, liebUser.LiebUserId, role.PlannedRaidRoleId, signUpType); } else { await RaidService.SignUp(_raid.RaidId, liebUser.LiebUserId, liebUser.GuildWars2Accounts.FirstOrDefault().GuildWars2AccountId, role.PlannedRaidRoleId, signUpType); } _raid = RaidService.GetRaid(_raid.RaidId); } async Task SignOffClicked(PlannedRaidRole role, LiebUser liebUser) { await RaidService.SignOff(_raid.RaidId, liebUser.LiebUserId, role.PlannedRaidRoleId); _raid = RaidService.GetRaid(_raid.RaidId); } async Task RandomizeClicked() { await RaidRandomizerService.RandomizeRaid(_raid.RaidId); _raid = RaidService.GetRaid(_raid.RaidId); } async Task ChangeAccount(LiebUser liebUser, ChangeEventArgs e) { int accountId = int.Parse(e.Value.ToString()); await RaidService.ChangeAccount(_raid.RaidId, liebUser.LiebUserId, accountId); _raid = RaidService.GetRaid(_raid.RaidId); } }