Realm Sdk: realm-dotnet version 10.15.1
Environment: Xamarin Forms
Hello,
I am working with an app where I need to manage multiple pages of the same collection. But the problem is that if I use single collection for all pages it is working fine. but when I use multiple collections and add their reference in the list to keep a reference and keep the listener alive, It does not work. Following is the code example:
//To keep pages list reference
private ObservableCollection<IQueryable<ChatMessage>> messagePages = new
ObservableCollection<IQueryable<ChatMessage>>();
//To keep listener reference and dispose it later
private List<IDisposable> listeners = new List<IDisposable>();
public async Task GetMessagePageAsync(string conversationId, DateTimeOffset startDate, DateTimeOffset endDate)
{
var messageDb = new MessageDB();
var messagesPage = await messageDb.GetMessagesForTimePeriod(conversationId, startDate, endDate);
if (messagesPage != null)
{
messagePages.Add(messagesPage);
var listener1 = messagePages[messagePages.Count() - 1].SubscribeForNotifications(RealmChangeListener);
listeners.Add(listener1);
}
}
Following is the MessageDb.GetMessagesForTimePeriod:
internal async Task<IQueryable<ChatMessage>> GetMessagesForTimePeriod(string conversationId, DateTimeOffset startDate, DateTimeOffset dayDate )
{
//Getting realm instance
Realm realm = await _dbService.GetDbInstanceAsync();
return realm.All<ChatMessage>().Where(o => o.ConversationID == conversationId && o.Timestamp >= dayDate && o.Timestamp <= startDate);
}