private async void ThumbnailDispatcherTimerOnTick(object sender, EventArgs eventArgs)
        {
            if (CollectionView.View.IsEmpty)
            {
                return;
            }

            int firstVisibleItem;
            int lastVisibleItem;

            _specialUniformGrid.GetVisibleRange(out firstVisibleItem, out lastVisibleItem);
            lastVisibleItem += 1;
            var items =
                CollectionView.View.Cast <ClientViewModel>()
                .Skip(firstVisibleItem > 1 ? firstVisibleItem - 1 : 0)
                .Take(lastVisibleItem).ToList();

            var totalImagesInMemory = _clientProvider.Clients.Where(x => x.Thumbnail != null && !items.Contains(x)).ToList();

            if (totalImagesInMemory.Count > 60)
            {
                foreach (var clientViewModel in totalImagesInMemory.OrderBy(x => x.ThumbnailTimestamp).Take(75 - items.Count)
                         )
                {
                    clientViewModel.Thumbnail = null;
                }
            }

            try
            {
                await Task.Run(() => _clientProvider.GetClientScreens(items.Select(x => x.Id).ToList()));
            }
            catch (InvalidOperationException)
            {
            }
        }