don't necessarily load messages

This commit is contained in:
adam 2025-06-04 21:09:22 -04:00
parent 224a3c5a62
commit a8bf8a8488
2 changed files with 21 additions and 5 deletions

View File

@ -22,4 +22,5 @@ public class Message
public List<Attachment> Attachments { get; set; }
public Account Author { get; set; }
public Channel Channel { get; set; }
public Guid? ChannelId { get; set; }
}

View File

@ -23,6 +23,10 @@ public static class Rememberer
ch.ParentChannel.SubChannels ??= [];
ch.ParentChannel.SubChannels.Add(ch);
}
if (ch.Messages?.Count > 0)
{
Console.WriteLine($"{ch.DisplayName} got {ch.Messages.Count} messages");
}
}
channelCacheDirty = false;
dbAccessSemaphore.Release();
@ -66,6 +70,14 @@ public static class Rememberer
dbAccessSemaphore.Release();
return toReturn;
}
public static List<Message> SearchMessages(Expression<Func<Message, bool>> predicate)
{
List<Message> toReturn;
dbAccessSemaphore.Wait();
toReturn = db.Messages.Where(predicate).ToList();
dbAccessSemaphore.Release();
return toReturn;
}
public static User SearchUser(Expression<Func<User, bool>> predicate)
{
User toReturn;
@ -221,11 +233,14 @@ public static class Rememberer
dbAccessSemaphore.Release();
return toReturn;
}
public static Channel ChannelDetail(Guid Id)
public static Channel ChannelDetail(Guid Id, bool messages = false)
{
if (channelCacheDirty)
Task.Run(() => cacheChannels()).Wait();
return channels.Find(c => c.Id == Id);
var ch = channels.Find(c => c.Id == Id);
if (messages)
ch.Messages = SearchMessages(m => m.ChannelId == ch.Id);
return ch;
}
public static Message MessageDetail(Guid Id)
{