From e85a61607e5fd5f37dcab5cbd324a45aeec48664 Mon Sep 17 00:00:00 2001 From: adam Date: Thu, 24 Apr 2025 10:58:01 -0400 Subject: [PATCH] startup hang solved :tada: --- Behaver.cs | 3 +-- ProtocolInterfaces/TwitchInterface/TwitchInterface.cs | 6 +++--- Rememberer.cs | 4 ++-- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/Behaver.cs b/Behaver.cs index 859f6f7..977e5f2 100644 --- a/Behaver.cs +++ b/Behaver.cs @@ -65,8 +65,7 @@ public class Behaver internal bool IsSelf(Guid AccountId) { - var db = new ChattingContext(); - var acc = db.Accounts.Find(AccountId); + var acc = Rememberer.SearchAccount(a => a.Id == AccountId); return SelfAccounts.Any(acc => acc.Id == AccountId); } diff --git a/ProtocolInterfaces/TwitchInterface/TwitchInterface.cs b/ProtocolInterfaces/TwitchInterface/TwitchInterface.cs index 5e581b0..92b598d 100644 --- a/ProtocolInterfaces/TwitchInterface/TwitchInterface.cs +++ b/ProtocolInterfaces/TwitchInterface/TwitchInterface.cs @@ -143,7 +143,7 @@ public class TwitchInterface private Account UpsertAccount(string username, Channel inChannel) { Console.WriteLine($"upserting twitch account. username: {username}. inChannel: {inChannel?.Id}"); - var acc = Rememberer.SearchAccount(ui => ui.ExternalId == username && ui.SeenInChannel.ExternalId == inChannel.ExternalId.ToString()); + var acc = Rememberer.SearchAccount(ui => ui.ExternalId == username && ui.SeenInChannel.ExternalId == inChannel.ExternalId); Console.WriteLine($"upserting twitch account, retrieved {acc?.Id}."); if (acc != null) { @@ -205,7 +205,7 @@ public class TwitchInterface c.SendFile = (f, t) => { throw new InvalidOperationException($"twitch cannot send files"); }; c = Rememberer.RememberChannel(c); - var selfAccountInChannel = c.Users?.FirstOrDefault(a => a.ExternalId == selfAccountInProtocol.ExternalId.ToString()); + var selfAccountInChannel = c.Users?.FirstOrDefault(a => a.ExternalId == selfAccountInProtocol.ExternalId); if(selfAccountInChannel == null) { selfAccountInChannel = UpsertAccount(selfAccountInProtocol.Username, c); @@ -248,7 +248,7 @@ Channel c = Rememberer.SearchChannel(ci => ci.ExternalId == $"w_{whisperWith}" c.SendFile = (f, t) => { throw new InvalidOperationException($"twitch cannot send files"); }; c = Rememberer.RememberChannel(c); - var selfAccountInChannel = c.Users.FirstOrDefault(a => a.ExternalId == selfAccountInProtocol.ExternalId.ToString()); + var selfAccountInChannel = c.Users.FirstOrDefault(a => a.ExternalId == selfAccountInProtocol.ExternalId); if(selfAccountInChannel == null) { selfAccountInChannel = UpsertAccount(selfAccountInChannel.Username, c); diff --git a/Rememberer.cs b/Rememberer.cs index db82a43..704cb55 100644 --- a/Rememberer.cs +++ b/Rememberer.cs @@ -13,7 +13,7 @@ public static class Rememberer { Account toReturn; dbAccessSemaphore.Wait(); - toReturn = db.Accounts.Include(a => a.IsUser).FirstOrDefault(predicate); + toReturn = db.Accounts?.Include(a => a.IsUser)?.FirstOrDefault(predicate); dbAccessSemaphore.Release(); return toReturn; } @@ -110,7 +110,7 @@ public static class Rememberer dbAccessSemaphore.Wait(); db.Accounts.Remove(toForget); db.SaveChanges(); - dbAccessSemaphore.Release(); + dbAccessSemaphore.Release(); } } public static void ForgetChannel(Channel toForget)