don't necessarily load messages
This commit is contained in:
parent
224a3c5a62
commit
a8bf8a8488
@ -22,4 +22,5 @@ public class Message
|
|||||||
public List<Attachment> Attachments { get; set; }
|
public List<Attachment> Attachments { get; set; }
|
||||||
public Account Author { get; set; }
|
public Account Author { get; set; }
|
||||||
public Channel Channel { get; set; }
|
public Channel Channel { get; set; }
|
||||||
|
public Guid? ChannelId { get; set; }
|
||||||
}
|
}
|
||||||
|
@ -23,6 +23,10 @@ public static class Rememberer
|
|||||||
ch.ParentChannel.SubChannels ??= [];
|
ch.ParentChannel.SubChannels ??= [];
|
||||||
ch.ParentChannel.SubChannels.Add(ch);
|
ch.ParentChannel.SubChannels.Add(ch);
|
||||||
}
|
}
|
||||||
|
if (ch.Messages?.Count > 0)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"{ch.DisplayName} got {ch.Messages.Count} messages");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
channelCacheDirty = false;
|
channelCacheDirty = false;
|
||||||
dbAccessSemaphore.Release();
|
dbAccessSemaphore.Release();
|
||||||
@ -66,6 +70,14 @@ public static class Rememberer
|
|||||||
dbAccessSemaphore.Release();
|
dbAccessSemaphore.Release();
|
||||||
return toReturn;
|
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)
|
public static User SearchUser(Expression<Func<User, bool>> predicate)
|
||||||
{
|
{
|
||||||
User toReturn;
|
User toReturn;
|
||||||
@ -221,11 +233,14 @@ public static class Rememberer
|
|||||||
dbAccessSemaphore.Release();
|
dbAccessSemaphore.Release();
|
||||||
return toReturn;
|
return toReturn;
|
||||||
}
|
}
|
||||||
public static Channel ChannelDetail(Guid Id)
|
public static Channel ChannelDetail(Guid Id, bool messages = false)
|
||||||
{
|
{
|
||||||
if (channelCacheDirty)
|
if (channelCacheDirty)
|
||||||
Task.Run(() => cacheChannels()).Wait();
|
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)
|
public static Message MessageDetail(Guid Id)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user