public void Restore() { var restoreEnumerator = persistentStorage.Restore().GetEnumerator(); if (!restoreEnumerator.MoveNext()) { persistedMessageId = lastMessageId = -1; data = new InfiniteArray <Message>(0, dataArrayOptions); RestoreSubscriptions(); return; } data = new InfiniteArray <Message>(restoreEnumerator.Current.ID, dataArrayOptions); data.Add(restoreEnumerator.Current); while (restoreEnumerator.MoveNext()) { data.Add(restoreEnumerator.Current); } currentData = new DataSnapshot() { StartMessageId = data.GetFirstItemIndex(), Data = data.GetDataBlocks() }; persistedMessageId = lastMessageId = currentData.Data[^ 1].Span[^ 1].ID;