you know why its change is being tracked? because you have another db context.

This commit is contained in:
adam 2025-02-28 22:53:10 -05:00
parent c971add137
commit d006367ecc
2 changed files with 16 additions and 78 deletions

View File

@ -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();
}

View File

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