From 62dc3d1efa17f7c0cd2a2b785fe83063e901784e Mon Sep 17 00:00:00 2001 From: Sarah Faey Date: Sun, 13 Nov 2022 21:48:56 +0100 Subject: [PATCH] added support for External users fixed potential errors --- Lieb/Data/DbInitializer.cs | 4 +- Lieb/Data/DiscordService.cs | 200 ++++++++++-------- Lieb/Data/RaidService.cs | 123 +++++++++-- Lieb/Data/TimerService.cs | 4 +- Lieb/Models/GuildWars2/Raid/RaidSignUp.cs | 3 +- .../GuildWars2/Raid/RaidSignUpHistory.cs | 15 +- Lieb/Pages/Raids/RaidDetails.razor | 2 +- Lieb/Pages/Raids/RaidEdit.razor | 12 +- Lieb/Pages/Raids/RaidRoles.razor | 4 +- Lieb/Pages/Raids/SignedUpUsers.razor | 20 +- 10 files changed, 257 insertions(+), 130 deletions(-) diff --git a/Lieb/Data/DbInitializer.cs b/Lieb/Data/DbInitializer.cs index 018d9a8..32174cf 100644 --- a/Lieb/Data/DbInitializer.cs +++ b/Lieb/Data/DbInitializer.cs @@ -40,8 +40,8 @@ namespace Lieb.Data GuildWars2Account bloodseeker = new GuildWars2Account() { AccountName = "Bloodseeker.2043" }; var users = new LiebUser[] { - new LiebUser{Id=0, Name="Sarah", Birthday=DateTime.Parse("1992-01-15"), GuildWars2Accounts = new List(){ linaith, sarah} }, - //new LiebUser{Id=194863625477816321, Name="Sarah", Birthday=DateTime.Parse("1992-01-15"), GuildWars2Accounts = new List(){ linaith, sarah} }, + //new LiebUser{Id=0, Name="Sarah", Birthday=DateTime.Parse("1992-01-15"), GuildWars2Accounts = new List(){ linaith, sarah} }, + new LiebUser{Id=194863625477816321, Name="Sarah", Birthday=DateTime.Parse("1992-01-15"), GuildWars2Accounts = new List(){ linaith, sarah} }, #if DEBUG new LiebUser{Id=194455125769715713, Name="Lisa", GuildWars2Accounts = new List(){ hierpiepts}}, new LiebUser{Id=2, Name="Simon", GuildWars2Accounts = new List(){ bloodseeker}} diff --git a/Lieb/Data/DiscordService.cs b/Lieb/Data/DiscordService.cs index 60586be..193f6e3 100644 --- a/Lieb/Data/DiscordService.cs +++ b/Lieb/Data/DiscordService.cs @@ -26,43 +26,44 @@ namespace Lieb.Data public async Task PostRaidMessage(int raidId) { - using var context = _contextFactory.CreateDbContext(); - Raid raid = context.Raids - .Include(r => r.Roles) - .Include(r => r.SignUps) - .ThenInclude(s => s.LiebUser) - .Include(r => r.SignUps) - .ThenInclude(s => s.GuildWars2Account) - .Include(r => r.SignUps) - .ThenInclude(s => s.RaidRole) - .Include(r => r.DiscordRaidMessages) - .FirstOrDefault(r => r.RaidId == raidId); - await PostRaidMessage(raid); - } - - public async Task PostRaidMessage(Raid raid) - { - var httpClient = _httpClientFactory.CreateClient(Constants.HttpClientName); - - ApiRaid apiRaid = ConvertRaid(raid); - - var raidItemJson = new StringContent( - JsonSerializer.Serialize(apiRaid), - Encoding.UTF8, - Application.Json); - - string json = JsonSerializer.Serialize(apiRaid); - - var httpResponseMessage = await httpClient.PostAsync("raid/PostRaidMessage", raidItemJson); - - if (httpResponseMessage.IsSuccessStatusCode) + try { - using var contentStream = - await httpResponseMessage.Content.ReadAsStreamAsync(); - - ApiRaid returnedRaid = await JsonSerializer.DeserializeAsync(contentStream, _serializerOptions); - await UpdateDiscordMessages(returnedRaid.DisocrdMessages, raid); + using var context = _contextFactory.CreateDbContext(); + Raid raid = context.Raids + .Include(r => r.Roles) + .Include(r => r.SignUps) + .ThenInclude(s => s.LiebUser) + .Include(r => r.SignUps) + .ThenInclude(s => s.GuildWars2Account) + .Include(r => r.SignUps) + .ThenInclude(s => s.RaidRole) + .Include(r => r.DiscordRaidMessages) + .ToList() + .FirstOrDefault(r => r.RaidId == raidId, new Raid()); + + var httpClient = _httpClientFactory.CreateClient(Constants.HttpClientName); + + ApiRaid apiRaid = ConvertRaid(raid); + + var raidItemJson = new StringContent( + JsonSerializer.Serialize(apiRaid), + Encoding.UTF8, + Application.Json); + + string json = JsonSerializer.Serialize(apiRaid); + + var httpResponseMessage = await httpClient.PostAsync("raid/PostRaidMessage", raidItemJson); + + if (httpResponseMessage.IsSuccessStatusCode) + { + using var contentStream = + await httpResponseMessage.Content.ReadAsStreamAsync(); + + ApiRaid returnedRaid = await JsonSerializer.DeserializeAsync(contentStream, _serializerOptions); + await UpdateDiscordMessages(returnedRaid.DisocrdMessages, raid); + } } + catch {} } public async Task DeleteRaidMessages(Raid raid) @@ -72,18 +73,22 @@ namespace Lieb.Data public async Task DeleteRaidMessages(IEnumerable messages) { - var httpClient = _httpClientFactory.CreateClient(Constants.HttpClientName); + try + { + var httpClient = _httpClientFactory.CreateClient(Constants.HttpClientName); - IEnumerable apiMessages = ConvertMessages(messages); + IEnumerable apiMessages = ConvertMessages(messages); - var messageItemJson = new StringContent( - JsonSerializer.Serialize(apiMessages), - Encoding.UTF8, - Application.Json); + var messageItemJson = new StringContent( + JsonSerializer.Serialize(apiMessages), + Encoding.UTF8, + Application.Json); - var httpResponseMessage = await httpClient.PostAsync("raid/DeleteRaidMessage", messageItemJson); + var httpResponseMessage = await httpClient.PostAsync("raid/DeleteRaidMessage", messageItemJson); - httpResponseMessage.EnsureSuccessStatusCode(); + httpResponseMessage.EnsureSuccessStatusCode(); + } + catch {} } public async Task> GetServers() @@ -102,62 +107,67 @@ namespace Lieb.Data return await JsonSerializer.DeserializeAsync>(contentStream, _serializerOptions); } } - catch(Exception e) - { - - } + catch {} return new List(); } public async Task SendUserReminder(RaidReminder reminder) { - using var context = _contextFactory.CreateDbContext(); - var httpClient = _httpClientFactory.CreateClient(Constants.HttpClientName); - - Raid raid = context.Raids - .Include(r => r.SignUps) - .ThenInclude(s => s.LiebUser) - .FirstOrDefault(r => r.RaidId == reminder.RaidId); - - if(raid == null) return; - - ApiUserReminder apiReminder = ConvertUserReminder(reminder, raid); - - var raidItemJson = new StringContent( - JsonSerializer.Serialize(apiReminder), - Encoding.UTF8, - Application.Json); - - var httpResponseMessage = await httpClient.PostAsync("raid/SendUserReminder", raidItemJson); - - if (httpResponseMessage.IsSuccessStatusCode) + try { - reminder.Sent = true; - context.Update(reminder); - await context.SaveChangesAsync(); + using var context = _contextFactory.CreateDbContext(); + var httpClient = _httpClientFactory.CreateClient(Constants.HttpClientName); + + Raid raid = context.Raids + .Include(r => r.SignUps) + .ThenInclude(s => s.LiebUser) + .FirstOrDefault(r => r.RaidId == reminder.RaidId); + + if(raid == null) return; + + ApiUserReminder apiReminder = ConvertUserReminder(reminder, raid); + + var raidItemJson = new StringContent( + JsonSerializer.Serialize(apiReminder), + Encoding.UTF8, + Application.Json); + + var httpResponseMessage = await httpClient.PostAsync("raid/SendUserReminder", raidItemJson); + + if (httpResponseMessage.IsSuccessStatusCode) + { + reminder.Sent = true; + context.Update(reminder); + await context.SaveChangesAsync(); + } } + catch {} } public async Task SendChannelReminder(RaidReminder reminder) { - var httpClient = _httpClientFactory.CreateClient(Constants.HttpClientName); + try + { + var httpClient = _httpClientFactory.CreateClient(Constants.HttpClientName); - ApiChannelReminder apiReminder = ConvertChannelReminder(reminder); + ApiChannelReminder apiReminder = ConvertChannelReminder(reminder); - var raidItemJson = new StringContent( - JsonSerializer.Serialize(apiReminder), - Encoding.UTF8, - Application.Json); + var raidItemJson = new StringContent( + JsonSerializer.Serialize(apiReminder), + Encoding.UTF8, + Application.Json); - var httpResponseMessage = await httpClient.PostAsync("raid/SendChannelReminder", raidItemJson); + var httpResponseMessage = await httpClient.PostAsync("raid/SendChannelReminder", raidItemJson); - if (httpResponseMessage.IsSuccessStatusCode) - { - reminder.Sent = true; - using var context = _contextFactory.CreateDbContext(); - context.Update(reminder); - await context.SaveChangesAsync(); + if (httpResponseMessage.IsSuccessStatusCode) + { + reminder.Sent = true; + using var context = _contextFactory.CreateDbContext(); + context.Update(reminder); + await context.SaveChangesAsync(); + } } + catch {} } private async Task UpdateDiscordMessages(IEnumerable messages, Raid raid) @@ -206,12 +216,24 @@ namespace Lieb.Data { if(signUp.SignUpType != SignUpType.SignedOff) { - string status = signUp.SignUpType != SignUpType.SignedUp ? signUp.SignUpType.ToString() : string.Empty; - apiRole.Users.Add(new ApiRaid.Role.User(){ - AccountName = signUp.GuildWars2Account.AccountName, - Status = status, - UserName = signUp.LiebUser.Name - }); + if(signUp.IsExternalUser) + { + string status = signUp.SignUpType != SignUpType.SignedUp ? signUp.SignUpType.ToString() : string.Empty; + apiRole.Users.Add(new ApiRaid.Role.User(){ + AccountName = string.Empty, + Status = status, + UserName = signUp.ExternalUserName + }); + } + else + { + string status = signUp.SignUpType != SignUpType.SignedUp ? signUp.SignUpType.ToString() : string.Empty; + apiRole.Users.Add(new ApiRaid.Role.User(){ + AccountName = signUp.GuildWars2Account.AccountName, + Status = status, + UserName = signUp.LiebUser.Name + }); + } } } apiRaid.Roles.Add(apiRole); diff --git a/Lieb/Data/RaidService.cs b/Lieb/Data/RaidService.cs index b558991..f6975c8 100644 --- a/Lieb/Data/RaidService.cs +++ b/Lieb/Data/RaidService.cs @@ -46,7 +46,8 @@ namespace Lieb.Data .Include(r => r.SignUps) .ThenInclude(s => s.RaidRole) .Include(r => r.DiscordRaidMessages) - .FirstOrDefault(r => r.RaidId == raidId); + .ToList() + .FirstOrDefault(r => r.RaidId == raidId, new Raid()); } public async Task AddOrEditRaid(Raid raid, List rolesToDelete, List remindersToDelete, List messagesToDelete) @@ -69,7 +70,7 @@ namespace Lieb.Data //move users back to "Random" role if (raid.RaidType != RaidType.Planned) { - RaidRole randomRole = raid.Roles.FirstOrDefault(r => r.IsRandomSignUpRole); + RaidRole randomRole = raid.Roles.FirstOrDefault(r => r.IsRandomSignUpRole, CreateRandomSignUpRole(raid.RaidType)); foreach (RaidSignUp signUp in raid.SignUps) { signUp.RaidRole = randomRole; @@ -79,7 +80,7 @@ namespace Lieb.Data await context.SaveChangesAsync(); } - _discordService.PostRaidMessage(raid.RaidId); + await _discordService.PostRaidMessage(raid.RaidId); } } @@ -94,7 +95,7 @@ namespace Lieb.Data await context.SaveChangesAsync(); context.Raids.Remove(raid); await context.SaveChangesAsync(); - _discordService.DeleteRaidMessages(raid); + await _discordService.DeleteRaidMessages(raid); } public async Task SignUp(int raidId, ulong liebUserId, int guildWars2AccountId, int plannedRoleId, SignUpType signUpType) @@ -108,24 +109,48 @@ namespace Lieb.Data List signUps = context.RaidSignUps.Where(r => r.RaidId == raidId && r.LiebUserId == liebUserId).ToList(); if (signUpType != SignUpType.Flex && signUps.Where(r => r.SignUpType != SignUpType.Flex).Any()) { - ChangeSignUpType(raidId, liebUserId, plannedRoleId, signUpType); + await ChangeSignUpType(raidId, liebUserId, plannedRoleId, signUpType); } else if (!signUps.Where(r => r.RaidRoleId == plannedRoleId).Any()) { - context.RaidSignUps.Add(new RaidSignUp() + RaidSignUp signUp = new RaidSignUp() { GuildWars2AccountId = guildWars2AccountId, RaidId = raidId, LiebUserId = liebUserId, RaidRoleId = plannedRoleId, SignUpType = signUpType - }); + }; + context.RaidSignUps.Add(signUp); await context.SaveChangesAsync(); + await LogSignUp(signUp); } - _discordService.PostRaidMessage(raidId); + await _discordService.PostRaidMessage(raidId); } - public async Task SignOff(int raidId, ulong liebUserId) + public async Task SignUpExternalUser(int raidId, string userName, int plannedRoleId, SignUpType signUpType, ulong signedUpByUserId) + { + if (!IsRoleSignUpAllowed(raidId, ulong.MaxValue, plannedRoleId, signUpType, true)) + { + return; + } + using var context = _contextFactory.CreateDbContext(); + + + RaidSignUp signUp = new RaidSignUp() + { + RaidId = raidId, + ExternalUserName = userName, + RaidRoleId = plannedRoleId, + SignUpType = signUpType + }; + context.RaidSignUps.Add(signUp); + await context.SaveChangesAsync(); + await LogSignUp(signUp, signedUpByUserId); + await _discordService.PostRaidMessage(raidId); + } + + public async Task SignOff(int raidId, ulong liebUserId, ulong signedOffByUserId = 0) { using var context = _contextFactory.CreateDbContext(); //remove Flex Sign Ups @@ -143,11 +168,29 @@ namespace Lieb.Data if(raid != null && raid.RaidType != RaidType.Planned && !signUp.RaidRole.IsRandomSignUpRole) { context.RaidRoles.Remove(signUp.RaidRole); - signUp.RaidRole = raid.Roles.FirstOrDefault(r => r.IsRandomSignUpRole); + signUp.RaidRole = raid.Roles.FirstOrDefault(r => r.IsRandomSignUpRole, CreateRandomSignUpRole(raid.RaidType)); } + await LogSignUp(signUp, signedOffByUserId); } await context.SaveChangesAsync(); - _discordService.PostRaidMessage(raidId); + await _discordService.PostRaidMessage(raidId); + } + + public async Task SignOffExternalUser(int raidId, string userName, ulong signedOffByUserId) + { + using var context = _contextFactory.CreateDbContext(); + + List signUps = context.RaidSignUps.Where(x => x.RaidId == raidId && x.ExternalUserName == userName).ToList(); + context.RaidSignUps.RemoveRange(signUps); + + await context.SaveChangesAsync(); + RaidSignUp signUp = signUps.FirstOrDefault(); + if(signUp != null) + { + signUp.SignUpType = SignUpType.SignedOff; + await LogSignUp(signUp, signedOffByUserId); + } + await _discordService.PostRaidMessage(raidId); } public async Task ChangeAccount(int raidId, ulong liebUserId, int guildWars2AccountId) @@ -159,10 +202,10 @@ namespace Lieb.Data signUp.GuildWars2AccountId = guildWars2AccountId; } await context.SaveChangesAsync(); - _discordService.PostRaidMessage(raidId); + await _discordService.PostRaidMessage(raidId); } - public void ChangeSignUpType(int raidId, ulong liebUserId, int plannedRoleId, SignUpType signUpType) + public async Task ChangeSignUpType(int raidId, ulong liebUserId, int plannedRoleId, SignUpType signUpType, bool postChanges = true) { if (!IsRoleSignUpAllowed(raidId, liebUserId, plannedRoleId, signUpType, true)) { @@ -187,9 +230,13 @@ namespace Lieb.Data { signUp.RaidRoleId = plannedRoleId; signUp.SignUpType = signUpType; + await LogSignUp(signUp); } context.SaveChanges(); - _discordService.PostRaidMessage(raidId); + if(postChanges) + { + await _discordService.PostRaidMessage(raidId); + } } public bool IsRoleSignUpAllowed(ulong liebUserId, int plannedRoleId, SignUpType signUpType) @@ -276,7 +323,7 @@ namespace Lieb.Data { if (moveFlexUser) { - ChangeSignUpType(raid.RaidId, userId, signUp.RaidRoleId, SignUpType.SignedUp); + await ChangeSignUpType(raid.RaidId, userId, signUp.RaidRoleId, SignUpType.SignedUp, false); } return true; } @@ -340,20 +387,60 @@ namespace Lieb.Data return true; } - public void SendReminders() + private async Task LogSignUp(RaidSignUp signUp, ulong signedUpBy = 0) + { + RaidSignUpHistory history = new RaidSignUpHistory() + { + RaidId = signUp.RaidId, + UserId = signUp.LiebUserId, + SignUpType = signUp.SignUpType, + Time = DateTimeOffset.UtcNow, + UserName = signUp.ExternalUserName, + GuildWars2AccountId = signUp.GuildWars2AccountId + }; + if(signedUpBy != 0) + { + history.UserId = signedUpBy; + } + using var context = _contextFactory.CreateDbContext(); + await context.RaidSignUpHistories.AddAsync(history); + await context.SaveChangesAsync(); + } + + public async Task SendReminders() { using var context = _contextFactory.CreateDbContext(); + DateTimeOffset now = DateTimeOffset.UtcNow; List raids = context.Raids .Include(r => r.Reminders) .ToList(); - foreach(Raid raid in raids) + foreach(Raid raid in raids.Where(r => r.StartTimeUTC > now)) { foreach(RaidReminder reminder in raid.Reminders.Where(reminder => !reminder.Sent && raid.StartTimeUTC.AddHours(-reminder.HoursBeforeRaid) < DateTime.UtcNow)) { - //TODO send reminders -> this is a Discord Problem... + switch(reminder.Type) + { + case RaidReminder.ReminderType.User: + await _discordService.SendUserReminder(reminder); + break; + case RaidReminder.ReminderType.Channel: + await _discordService.SendChannelReminder(reminder); + break; + } } } } + + public RaidRole CreateRandomSignUpRole(RaidType raidType) + { + return new RaidRole() + { + Spots = 10, + Name = "Random", + Description = raidType.ToString(), + IsRandomSignUpRole = true + }; + } } } diff --git a/Lieb/Data/TimerService.cs b/Lieb/Data/TimerService.cs index 7010701..57a05f3 100644 --- a/Lieb/Data/TimerService.cs +++ b/Lieb/Data/TimerService.cs @@ -20,7 +20,7 @@ namespace Lieb.Data return Task.CompletedTask; } - private void CheckRaids(object? state) + private async void CheckRaids(object? state) { using (var scope = _services.CreateScope()) { @@ -41,7 +41,7 @@ namespace Lieb.Data var raidService = scope.ServiceProvider .GetRequiredService(); - raidService.SendReminders(); + await raidService.SendReminders(); } } diff --git a/Lieb/Models/GuildWars2/Raid/RaidSignUp.cs b/Lieb/Models/GuildWars2/Raid/RaidSignUp.cs index d57f0c4..6a39310 100644 --- a/Lieb/Models/GuildWars2/Raid/RaidSignUp.cs +++ b/Lieb/Models/GuildWars2/Raid/RaidSignUp.cs @@ -12,11 +12,12 @@ public class RaidSignUp { public int RaidSignUpId { get; set; } - + public bool IsExternalUser {get { return LiebUserId == 0;}} public int RaidId { get; set; } public ulong LiebUserId { get; set; } public int GuildWars2AccountId { get; set; } public int RaidRoleId { get; set; } + public string ExternalUserName {get; set;} = string.Empty; public SignUpType SignUpType { get; set; } diff --git a/Lieb/Models/GuildWars2/Raid/RaidSignUpHistory.cs b/Lieb/Models/GuildWars2/Raid/RaidSignUpHistory.cs index 1668f50..2e0d847 100644 --- a/Lieb/Models/GuildWars2/Raid/RaidSignUpHistory.cs +++ b/Lieb/Models/GuildWars2/Raid/RaidSignUpHistory.cs @@ -4,12 +4,25 @@ { public int RaidSignUpHistoryId { get; set; } - public string UserName { get; set; } = string.Empty; + public int RaidId { get; set; } + + public ulong UserId {get; set;} + public int GuildWars2AccountId { get; set; } + + //public ulong SignedUpByUserId {get; set;} + + public string UserName {get; set;} = string.Empty; public DateTimeOffset Time { get; set; } = DateTimeOffset.Now; public SignUpType SignUpType { get; set; } + public LiebUser User {get; set;} + + //public LiebUser SignedUpByUser {get; set;} + public Raid Raid { get; set; } + + public GuildWars2Account GuildWars2Account { get; set; } } } diff --git a/Lieb/Pages/Raids/RaidDetails.razor b/Lieb/Pages/Raids/RaidDetails.razor index 8b16f11..8b5ef10 100644 --- a/Lieb/Pages/Raids/RaidDetails.razor +++ b/Lieb/Pages/Raids/RaidDetails.razor @@ -17,7 +17,7 @@ @if (_user != null && _isRaidSignUpAllowed) {
- @if(_raid.SignUps.Where(s => s.LiebUserId == _user.Id && s.SignUpType != SignUpType.SignedOff).Any()) + @if(_raid.SignUps.Where(s => s.LiebUserId == _user.Id && s.SignUpType != SignUpType.SignedOff && s.LiebUserId > 0).Any()) { You are signed up diff --git a/Lieb/Pages/Raids/RaidEdit.razor b/Lieb/Pages/Raids/RaidEdit.razor index 0568e02..086383a 100644 --- a/Lieb/Pages/Raids/RaidEdit.razor +++ b/Lieb/Pages/Raids/RaidEdit.razor @@ -234,8 +234,8 @@ { _raid = RaidService.GetRaid(parsedId); - if (_raid != null && (_raid.RaidOwnerId == _user.Id - || _user.RoleAssignments.Max(a => a.LiebRole.Level) >= Constants.RaidEditPowerLevel)) + if (_raid.RaidOwnerId == _user.Id + || _user.RoleAssignments.Max(a => a.LiebRole.Level) >= Constants.RaidEditPowerLevel) { _startTime = await TimeZoneService.GetLocalDateTime(_raid.StartTimeUTC); _endTime = await TimeZoneService.GetLocalDateTime(_raid.EndTimeUTC); @@ -301,13 +301,7 @@ { if(!_raid.Roles.Where(r => r.IsRandomSignUpRole).Any()) { - _raid.Roles.Add(new RaidRole() - { - Spots = 10, - Name = "Random", - Description = _raid.RaidType.ToString(), - IsRandomSignUpRole = true - }); + _raid.Roles.Add(RaidService.CreateRandomSignUpRole(_raid.RaidType)); } foreach(RaidRole role in _raid.Roles.Where(r => !r.IsRandomSignUpRole)) diff --git a/Lieb/Pages/Raids/RaidRoles.razor b/Lieb/Pages/Raids/RaidRoles.razor index 6b4b792..460762a 100644 --- a/Lieb/Pages/Raids/RaidRoles.razor +++ b/Lieb/Pages/Raids/RaidRoles.razor @@ -31,7 +31,7 @@ @{ - bool isSignedUp = _raid.SignUps.Where(s => s.LiebUserId == _liebUserId && s.SignUpType != SignUpType.SignedOff).Any(); + bool isSignedUp = _raid.SignUps.Where(s => s.LiebUserId == _liebUserId && s.SignUpType != SignUpType.SignedOff && s.LiebUserId > 0).Any(); } @foreach (ExpandableRole role in _expandableRoles.OrderBy(r => r.Role.RaidRoleId)) { @@ -141,7 +141,7 @@ { if(_raid.SignUps.Where(s => s.LiebUserId == _liebUserId).Any() && signUpType != SignUpType.Flex) { - RaidService.ChangeSignUpType(_raid.RaidId, _liebUserId, role.RaidRoleId, signUpType); + await RaidService.ChangeSignUpType(_raid.RaidId, _liebUserId, role.RaidRoleId, signUpType); } else { diff --git a/Lieb/Pages/Raids/SignedUpUsers.razor b/Lieb/Pages/Raids/SignedUpUsers.razor index 6f4f6ab..a8f25f7 100644 --- a/Lieb/Pages/Raids/SignedUpUsers.razor +++ b/Lieb/Pages/Raids/SignedUpUsers.razor @@ -13,12 +13,12 @@ { @{ - bool isUser = signUp.LiebUserId == _liebUserId; + bool isLoggedInUser = signUp.LiebUserId == _liebUserId; string signUpStatus = string.Empty; @if (signUp.SignUpType != SignUpType.SignedUp && _signUpTypes.Count > 1) signUpStatus = $" - {signUp.SignUpType}"; } - @if (isUser && _usableAccounts.Count > 1 && signUp.SignUpType != SignUpType.Flex) + @if (isLoggedInUser && _usableAccounts.Count > 1 && signUp.SignUpType != SignUpType.Flex) { @signUpStatus } - else if(isUser && _showUserColor) + else if(isLoggedInUser && _showUserColor) { @signUp.GuildWars2Account.AccountName @signUpStatus @@ -39,13 +39,23 @@ } } + else if(!signUp.IsExternalUser) + { + + @signUp.GuildWars2Account.AccountName @signUpStatus + @if(_showToolTip) + { + @signUp.LiebUser.Name + } + + } else { - @signUp.GuildWars2Account.AccountName @signUpStatus + @signUp.ExternalUserName @signUpStatus @if(_showToolTip) { - @signUp.LiebUser.Name + external user } }