public void RemoveMessenger(Messenger focusedMessenger) { MessengerCache.Remove(MessengerCache.SingleOrDefault(i => i.Id == focusedMessenger.Id)); if (DisplayedMessengers.Count() == 0) { if (IsPreviousPageButtonEnabled) { PreviousPage(); return; } else if (IsMoveUpButtonEnabled) { MoveUpALevel(); return; } } if (focusedMessenger.Id == ParentMessenger.Id) { MoveUpALevel(); return; } //Move the last element from tha cache to the displayed messengers if needed. int maxElementCountOnAPage = MaxColumnCount * MaxRowCount; if (DisplayedMessengers.Count() < maxElementCountOnAPage && IsNextPageButtonEnabled) { int indexTo = CurrentPageNumber * maxElementCountOnAPage; DisplayedMessengers.Add(MessengerCache[indexTo - 1]); } NextPageButtonStateCalculator(); }
private void LoadMessengers() { int maxElementCountOnAPage = MaxColumnCount * MaxRowCount; int indexFrom = (CurrentPageNumber - 1) * maxElementCountOnAPage; int indexTo = CurrentPageNumber * maxElementCountOnAPage; DisplayedMessengers.Clear(); for (; (indexFrom < indexTo && indexFrom < MessengerCache.Count()); indexFrom++) { DisplayedMessengers.Add(MessengerCache[indexFrom]); } CalculateButtonStates(); }