issue cracked. now, apply rememberer to webinterface.

This commit is contained in:
adam 2025-03-05 23:11:58 -05:00
parent d006367ecc
commit 18e8f0f36e

View File

@ -5,7 +5,7 @@ using vassago.Models;
public static class Rememberer public static class Rememberer
{ {
private static readonly SemaphoreSlim dbAccessSemaphore = new(1, 1); private static readonly ChattingContext db = new();
public static Account SearchAccount(Expression<Func<Account, bool>> predicate) public static Account SearchAccount(Expression<Func<Account, bool>> predicate)
{ {
return (new ChattingContext()).Accounts.FirstOrDefault(predicate); return (new ChattingContext()).Accounts.FirstOrDefault(predicate);
@ -32,93 +32,38 @@ public static class Rememberer
} }
public static void RememberAccount(Account toRemember) public static void RememberAccount(Account toRemember)
{ {
dbAccessSemaphore.Wait(); db.Update(toRemember);
try db.SaveChanges();
{
var db = new ChattingContext();
db.Update(toRemember);
db.ChangeTracker.Clear();
db.SaveChanges();
}
finally
{
dbAccessSemaphore.Release();
}
} }
public static void RememberAttachment(Attachment toRemember) public static void RememberAttachment(Attachment toRemember)
{ {
dbAccessSemaphore.Wait(); db.Update(toRemember);
try
{ db.SaveChanges();
var db = new ChattingContext();
db.Update(toRemember);
db.ChangeTracker.Clear();
db.SaveChanges();
}
finally
{
dbAccessSemaphore.Release();
}
} }
public static Channel RememberChannel(Channel toRemember) public static Channel RememberChannel(Channel toRemember)
{ {
dbAccessSemaphore.Wait(); db.Update(toRemember);
try
{ db.SaveChanges();
var db = new ChattingContext();
db.Update(toRemember);
db.ChangeTracker.Clear();
db.SaveChanges();
}
finally
{
dbAccessSemaphore.Release();
}
return toRemember; return toRemember;
} }
public static void RememberMessage(Message toRemember) public static void RememberMessage(Message toRemember)
{ {
dbAccessSemaphore.Wait(); db.Update(toRemember);
try
{ db.SaveChanges();
var db = new ChattingContext();
db.Update(toRemember);
db.ChangeTracker.Clear();
db.SaveChanges();
}
finally
{
dbAccessSemaphore.Release();
}
} }
public static void RememberUser(User toRemember) public static void RememberUser(User toRemember)
{ {
dbAccessSemaphore.Wait(); db.Users.Update(toRemember);
try
{ db.SaveChanges();
var db = new ChattingContext();
db.Users.Update(toRemember);
db.ChangeTracker.Clear();
db.SaveChanges();
}
finally
{
dbAccessSemaphore.Release();
}
} }
public static void ForgetUser(User toForget) public static void ForgetUser(User toForget)
{ {
dbAccessSemaphore.Wait(); db.Users.Remove(toForget);
try
{ db.SaveChanges();
var db = new ChattingContext();
db.Users.Remove(toForget);
db.ChangeTracker.Clear();
db.SaveChanges();
}
finally
{
dbAccessSemaphore.Release();
}
} }
} }