diff --git a/ProtocolInterfaces/DiscordInterface/DiscordInterface.cs b/ProtocolInterfaces/DiscordInterface/DiscordInterface.cs index 2487c20..013647b 100644 --- a/ProtocolInterfaces/DiscordInterface/DiscordInterface.cs +++ b/ProtocolInterfaces/DiscordInterface/DiscordInterface.cs @@ -324,7 +324,10 @@ public class DiscordInterface { Console.WriteLine($"acc's user: {acc.IsUser?.Id}"); } - acc ??= new Account() { IsUser = new User() }; + acc ??= new Account() { + IsUser = Rememberer.SearchUser(u => u.Accounts.Any(a => a.ExternalId == acc.ExternalId && a.Protocol == acc.Protocol)) + ?? new User() + }; acc.Username = user.Username; acc.ExternalId = user.Id.ToString(); @@ -332,8 +335,6 @@ public class DiscordInterface acc.Protocol = PROTOCOL; acc.SeenInChannel = inChannel; - acc.IsUser = Rememberer.SearchUser(u => u.Accounts.Any(a => a.ExternalId == acc.ExternalId && a.Protocol == acc.Protocol)); - Console.WriteLine($"we asked rememberer to search for acc's user. {acc.IsUser?.Id}"); if (acc.IsUser != null) { diff --git a/Rememberer.cs b/Rememberer.cs index 3371cc8..24d532e 100644 --- a/Rememberer.cs +++ b/Rememberer.cs @@ -9,27 +9,27 @@ public static class Rememberer private static readonly ChattingContext db = new(); public static Account SearchAccount(Expression> predicate) { - return (new ChattingContext()).Accounts.Include(a => a.IsUser).FirstOrDefault(predicate); + return db.Accounts.Include(a => a.IsUser).FirstOrDefault(predicate); } public static List SearchAccounts(Expression> predicate) { - return (new ChattingContext()).Accounts.Where(predicate).ToList(); + return db.Accounts.Where(predicate).ToList(); } public static Attachment SearchAttachment(Expression> predicate) { - return (new ChattingContext()).Attachments.FirstOrDefault(predicate); + return db.Attachments.FirstOrDefault(predicate); } public static Channel SearchChannel(Expression> predicate) { - return (new ChattingContext()).Channels.FirstOrDefault(predicate); + return db.Channels.FirstOrDefault(predicate); } public static Message SearchMessage(Expression> predicate) { - return (new ChattingContext()).Messages.FirstOrDefault(predicate); + return db.Messages.FirstOrDefault(predicate); } public static User SearchUser(Expression> predicate) { - return (new ChattingContext()).Users.Include(u => u.Accounts).FirstOrDefault(predicate); + return db.Users.Include(u => u.Accounts).FirstOrDefault(predicate); } public static void RememberAccount(Account toRemember) {