From d006367ecc8872fc8ded8d0ee067bec1386b176a Mon Sep 17 00:00:00 2001 From: adam Date: Fri, 28 Feb 2025 22:53:10 -0500 Subject: [PATCH] you know why its change is being tracked? because you have another db context. --- .../DiscordInterface/DiscordInterface.cs | 3 +- Rememberer.cs | 91 +++---------------- 2 files changed, 16 insertions(+), 78 deletions(-) diff --git a/ProtocolInterfaces/DiscordInterface/DiscordInterface.cs b/ProtocolInterfaces/DiscordInterface/DiscordInterface.cs index efaff3f..05434f2 100644 --- a/ProtocolInterfaces/DiscordInterface/DiscordInterface.cs +++ b/ProtocolInterfaces/DiscordInterface/DiscordInterface.cs @@ -236,8 +236,8 @@ public class DiscordInterface Channel c = Rememberer.SearchChannel(ci => ci.ExternalId == channel.Id.ToString() && ci.Protocol == PROTOCOL); if (c == null) { + Console.WriteLine($"couldn't find channel under protocol {PROTOCOL} with externalId {channel.Id.ToString()}"); c = new Channel(); - Console.WriteLine($"adding channel {channel.Name}"); } c.DisplayName = channel.Name; @@ -298,6 +298,7 @@ public class DiscordInterface Channel c = Rememberer.SearchChannel(ci => ci.ExternalId == channel.Id.ToString() && ci.Protocol == PROTOCOL); if (c == null) { + Console.WriteLine($"couldn't find channel under protocol {PROTOCOL} with externalId {channel.Id.ToString()}"); c = new Channel(); } diff --git a/Rememberer.cs b/Rememberer.cs index 920e8ac..64afd1d 100644 --- a/Rememberer.cs +++ b/Rememberer.cs @@ -36,23 +36,9 @@ public static class Rememberer try { var db = new ChattingContext(); - if (toRemember.Id == Guid.Empty) - { - var parentChannel = toRemember.SeenInChannel; - var isUser = toRemember.IsUser; - toRemember.SeenInChannel = null; - toRemember.IsUser = null; - db.Accounts.Add(toRemember); - db.SaveChanges(); - - toRemember.SeenInChannel = parentChannel; - toRemember.IsUser = isUser; - db.SaveChanges(); - } - else - { - db.SaveChanges(); - } + db.Update(toRemember); + db.ChangeTracker.Clear(); + db.SaveChanges(); } finally { @@ -65,19 +51,9 @@ public static class Rememberer try { var db = new ChattingContext(); - if (toRemember.Id == Guid.Empty) - { - var msg = toRemember.Message; - toRemember.Message = null; - db.Attachments.Add(toRemember); - db.SaveChanges(); - toRemember.Message = msg; - db.SaveChanges(); - } - else - { - db.SaveChanges(); - } + db.Update(toRemember); + db.ChangeTracker.Clear(); + db.SaveChanges(); } finally { @@ -90,25 +66,8 @@ public static class Rememberer try { var db = new ChattingContext(); - if (toRemember.Id == Guid.Empty) - { - var parent = toRemember.ParentChannel; - var subChannesl = toRemember.SubChannels; - var msgs = toRemember.Messages; - var accounts = toRemember.Users; - toRemember.ParentChannel = null; - toRemember.SubChannels = null; - toRemember.Messages = null; - toRemember.Users = null; - db.Channels.Add(toRemember); - db.SaveChanges(); - toRemember.ParentChannel = parent; - toRemember.SubChannels = subChannesl; - toRemember.Messages = msgs; - toRemember.Users = accounts; - db.SaveChanges(); - } - + db.Update(toRemember); + db.ChangeTracker.Clear(); db.SaveChanges(); } finally @@ -123,21 +82,8 @@ public static class Rememberer try { var db = new ChattingContext(); - if (toRemember.Id == Guid.Empty) - { - var author = toRemember.Author; - var channel = toRemember.Channel; - var attachments = toRemember.Attachments; - toRemember.Author = null; - toRemember.Channel = null; - toRemember.Attachments = null; - db.Messages.Add(toRemember); - db.SaveChanges(); - toRemember.Author = author; - toRemember.Channel = channel; - toRemember.Attachments = attachments; - db.SaveChanges(); - } + db.Update(toRemember); + db.ChangeTracker.Clear(); db.SaveChanges(); } finally @@ -151,19 +97,9 @@ public static class Rememberer try { var db = new ChattingContext(); - if (toRemember.Id == Guid.Empty) - { - var accs = toRemember.Accounts; - toRemember.Accounts = null; - db.Users.Add(toRemember); - db.SaveChanges(); - toRemember.Accounts = accs; - db.SaveChanges(); - } - else - { - db.SaveChanges(); - } + db.Users.Update(toRemember); + db.ChangeTracker.Clear(); + db.SaveChanges(); } finally { @@ -177,6 +113,7 @@ public static class Rememberer { var db = new ChattingContext(); db.Users.Remove(toForget); + db.ChangeTracker.Clear(); db.SaveChanges(); } finally