Fix error when slot on case does not exist

This commit is contained in:
jvyden 2022-08-20 19:18:40 -04:00
parent f0a9fc324f
commit 643b00512a
No known key found for this signature in database
GPG key ID: 18BCF2BE0262B278
2 changed files with 14 additions and 8 deletions

View file

@ -40,13 +40,19 @@
@if (Model.Type.AffectsLevel())
{
Slot slot = await Model.GetSlotAsync(database);
<p><strong>Affected level:</strong> <a href="/slot/@slot.SlotId">@slot.Name</a></p>
Slot? slot = await Model.GetSlotAsync(database);
if (slot != null)
{
<p><strong>Affected level:</strong> <a href="/slot/@slot.SlotId">@slot.Name</a></p>
}
}
else if (Model.Type.AffectsUser())
{
User user = await Model.GetUserAsync(database);
<p><strong>Affected user:</strong> <a href="/user/@user.UserId">@user.Username</a></p>
User? user = await Model.GetUserAsync(database);
if (user != null)
{
<p><strong>Affected user:</strong> <a href="/user/@user.UserId">@user.Username</a></p>
}
}
<h3>Reason</h3>

View file

@ -42,16 +42,16 @@ public class ModerationCase
public int AffectedId { get; set; }
#region Get affected id result
public Task<User> GetUserAsync(Database database)
public Task<User?> GetUserAsync(Database database)
{
Debug.Assert(this.Type.AffectsUser());
return database.Users.FirstOrDefaultAsync(u => u.UserId == this.AffectedId)!;
return database.Users.FirstOrDefaultAsync(u => u.UserId == this.AffectedId);
}
public Task<Slot> GetSlotAsync(Database database)
public Task<Slot?> GetSlotAsync(Database database)
{
Debug.Assert(this.Type.AffectsLevel());
return database.Slots.FirstOrDefaultAsync(u => u.SlotId == this.AffectedId)!;
return database.Slots.FirstOrDefaultAsync(u => u.SlotId == this.AffectedId);
}
#endregion