double add solved. also, i was relinking... I think that's supposed to have been only if needed.

This commit is contained in:
adam 2025-03-11 13:33:00 -04:00
parent 0d3a56c8db
commit 50ecfc5867
2 changed files with 10 additions and 9 deletions

View File

@ -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)
{

View File

@ -9,27 +9,27 @@ public static class Rememberer
private static readonly ChattingContext db = new();
public static Account SearchAccount(Expression<Func<Account, bool>> predicate)
{
return (new ChattingContext()).Accounts.Include(a => a.IsUser).FirstOrDefault(predicate);
return db.Accounts.Include(a => a.IsUser).FirstOrDefault(predicate);
}
public static List<Account> SearchAccounts(Expression<Func<Account, bool>> predicate)
{
return (new ChattingContext()).Accounts.Where(predicate).ToList();
return db.Accounts.Where(predicate).ToList();
}
public static Attachment SearchAttachment(Expression<Func<Attachment, bool>> predicate)
{
return (new ChattingContext()).Attachments.FirstOrDefault(predicate);
return db.Attachments.FirstOrDefault(predicate);
}
public static Channel SearchChannel(Expression<Func<Channel, bool>> predicate)
{
return (new ChattingContext()).Channels.FirstOrDefault(predicate);
return db.Channels.FirstOrDefault(predicate);
}
public static Message SearchMessage(Expression<Func<Message, bool>> predicate)
{
return (new ChattingContext()).Messages.FirstOrDefault(predicate);
return db.Messages.FirstOrDefault(predicate);
}
public static User SearchUser(Expression<Func<User, bool>> 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)
{