public void Setup() { _arrayOfData = new StreamItemCollection[_totalCount]; for (int i = 0; i < _totalCount; i++) { _arrayOfData[i] = new StreamItemCollection(new [] { new StreamItem() { StreamItemId = i } }); } var loggerFactory = new LoggerFactory(); _streamService = new StreamServiceExample(loggerFactory.CreateLogger("StreamServiceBenchmark"), false); var cts = new CancellationTokenSource(); var serverStreamWriter = new ServerStreamWriterFake(); var streamInfo = new StreamInfo <StreamItemCollection>() { CancelationToken = cts.Token, Keys = new[] { "tenantId" }, Peer = "127.0.0.1:5000", Stream = serverStreamWriter }; _streamData = _streamService.RegisterStream(streamInfo, new Filter()).GetAwaiter().GetResult(); _streamService.SwitchToReady(_streamData); }
public void Setup() { _arrayOfData = new StreamItemCollection[TotalCount]; for (int i = 0; i < TotalCount; i++) { _arrayOfData[i] = new StreamItemCollection(new[] { new StreamItem() { StreamItemId = i } }); } var loggerFactory = new LoggerFactory(); _streamService = new StreamServiceExample(loggerFactory.CreateLogger("StreamServiceMultipleClientsBenchmark"), false); var cts = new CancellationTokenSource(); var list = new List <StreamData <StreamItemCollection, StreamItem, long> >(); for (int i = 0; i < ConnectedStreams; i++) { var serverStreamWriter = new ServerStreamWriterFake(); var streamInfo = new StreamInfo <StreamItemCollection>() { CancelationToken = cts.Token, Keys = new[] { "tenantId" }, Peer = "127.0.0.1:5000", Stream = serverStreamWriter }; var streamDataItem = _streamService.RegisterStream(streamInfo, new Filter()) .GetAwaiter().GetResult(); _streamService.SwitchToReady(streamDataItem); list.Add(streamDataItem); } _streamData = list; }
public void TestOrder() { var heap = new MinBinaryHeap <StreamItemCollection, StreamItem, long>(128); var array = new StreamItemCollection[] { new StreamItemCollection(new [] { new StreamItem() { StreamItemId = 100, } }), new StreamItemCollection(new [] { new StreamItem() { StreamItemId = 90, } }) , new StreamItemCollection(new [] { new StreamItem() { StreamItemId = 80, } }) , new StreamItemCollection(new [] { new StreamItem() { StreamItemId = 70, } }) , new StreamItemCollection(new [] { new StreamItem() { StreamItemId = 60, } }) , new StreamItemCollection(new [] { new StreamItem() { StreamItemId = 50, } }) , new StreamItemCollection(new [] { new StreamItem() { StreamItemId = 40, } }) }; foreach (var item in array) { heap.Enqueue(item); } var min = long.MinValue; //For Debug //var list = new List<WithdrawalUpdateArrayResponse>(); while (heap.Count != 0) { var item = heap.Dequeue(); //list.Add(item); Assert.True(min < item.StreamItems.First().StreamItemId); min = item.StreamItems.First().StreamItemId; } }
private async Task LoadDataInternalAsync() { await _localStorageManager.ClearTempFilesAsync(); var streamItems = new StreamItemCollection(_apiClient, _streamId, _showNewestFirst, _telemetryClient, AllArticles, b => IsBusy = b, _preloadItemCount); streamItems.LoadMoreItemsError += (sender, args) => IsOffline = true; await streamItems.InitAsync(); Items = streamItems; _currentItem = Items.FirstOrDefault(); if (_currentItem != null) { _currentItem.IsSelected = true; SetCurrentItemRead(!_currentItem.Unread); SetCurrentItemStarred(_currentItem.Starred); } else { SetCurrentItemRead(false); SetCurrentItemStarred(false); } CurrentItemReadEnabled = _currentItem != null && !(_currentItem is EmptySpaceStreamItem) && !(_currentItem is HeaderSpaceStreamItem); CurrentItemStarredEnabled = _currentItem != null && !(_currentItem is EmptySpaceStreamItem) && !(_currentItem is HeaderSpaceStreamItem); RaiseOpenWebCommandCanExecuteChanged(); RaiseShareCommandCanExecuteChanged(); RaiseSaveCommandCanExecuteChanged(); if (Items != null) { var streamItemCollectionState = Items.GetSate(); //await _cacheManager.SaveStreamAsync(streamItemCollectionState); await _localStorageManager.SaveStreamCollectionAsync(streamItemCollectionState); } }
private async void LoadData() { IsBusy = true; Exception error = null; try { IsOffline = false; await LoadDataInternalAsync(); } catch (AuthenticationApiException) { _apiClient.ClearSession(); _navigationService.Navigate(PageTokens.SignIn, null); return; } catch (Exception ex) { error = ex; _telemetryClient.TrackExceptionFull(ex); } finally { IsBusy = false; } if (error == null) return; IsOffline = true; IsBusy = true; var cacheData = await _localStorageManager.LoadStreamCollectionAsync(_streamId); IsBusy = false; if (cacheData != null) { var items = new StreamItemCollection(cacheData, _apiClient, _telemetryClient, b => IsBusy = b, _preloadItemCount); _currentItem = items.FirstOrDefault(i => i.IsSelected); _currentItemRead = _currentItem != null && !_currentItem.Unread; CurrentItemReadEnabled = _currentItem != null; _currentItemStarred = _currentItem != null && _currentItem.Starred; CurrentItemStarredEnabled = _currentItem != null; Items = items; } MessageDialog msgbox = new MessageDialog(error.Message, Strings.Resources.ErrorDialogTitle); await msgbox.ShowAsync(); }
private bool RestoreState(Dictionary<string, object> viewModelState) { if (viewModelState == null) return false; object stateValue; if (viewModelState.TryGetValue("Title", out stateValue)) Title = (string)stateValue; _currentItemRead = viewModelState.GetValue<bool>("CurrentItemRead"); OnPropertyChanged("CurrentItemRead"); CurrentItemReadEnabled = viewModelState.GetValue<bool>("CurrentItemReadEnabled"); _currentItemStarred = viewModelState.GetValue<bool>("CurrentItemStarred"); OnPropertyChanged("CurrentItemStarred"); CurrentItemStarredEnabled = viewModelState.GetValue<bool>("CurrentItemStarredEnabled"); var itemsState = viewModelState.GetValue<StreamItemCollectionState>("Items"); if (itemsState == null) return false; _currentItem = itemsState.Items.FirstOrDefault(i => i.IsSelected); Items = new StreamItemCollection(itemsState, _apiClient, _telemetryClient, b => IsBusy = b, _preloadItemCount); Items.LoadMoreItemsError += (sender, args) => IsOffline = true; return true; }