public static ReactiveTable CreateReactiveTableFull() { var table = new ReactiveTable(); table.AddColumn(new ReactiveColumn <int>(TestTableColumns.IdColumn)); table.AddColumn(new ReactiveColumn <string>(TestTableColumns.StringColumn)); table.AddColumn(new ReactiveColumn <decimal>(TestTableColumns.DecimalColumn)); table.AddColumn(new ReactiveColumn <bool>(TestTableColumns.BoolColumn)); table.AddColumn(new ReactiveColumn <double>(TestTableColumns.DoubleColumn)); table.AddColumn(new ReactiveColumn <short>(TestTableColumns.ShortColumn)); table.AddColumn(new ReactiveColumn <long>(TestTableColumns.LongColumn)); table.AddColumn(new ReactiveColumn <DateTime>(TestTableColumns.DateTimeColumn)); table.AddColumn(new ReactiveColumn <TimeSpan>(TestTableColumns.TimespanColumn)); table.AddColumn(new ReactiveColumn <Guid>(TestTableColumns.GuidColumn)); table.AddColumn(new ReactiveColumn <float>(TestTableColumns.FloatColumn)); table.AddColumn(new ReactiveColumn <byte>(TestTableColumns.ByteColumn)); table.AddColumn(new ReactiveColumn <char>(TestTableColumns.CharColumn)); return(table); }
public AccountBalanceDataService(Dispatcher dispatcher, int maxEntries = int.MaxValue) { _maxEntries = maxEntries; People = new ReactiveTable <PersonViewModel>(); var basePersonColumns = new List <IReactiveColumn> { new ReactiveColumn <int>(PersonColumns.IdColumn), new ReactiveColumn <string>(PersonColumns.NameColumn) }; var peopleWire = SetupPersonTable((IWritableReactiveTable)People, basePersonColumns, dispatcher); var baseAccountColumns = new List <IReactiveColumn> { new ReactiveColumn <int>(AccountColumns.IdColumn), new ReactiveColumn <int>(AccountColumns.PersonId), new ReactiveColumn <decimal>(AccountColumns.AccountBalance) }; Accounts = new ReactiveTable(); var accountsWire = SetupAccountTable((IWritableReactiveTable)Accounts, baseAccountColumns, dispatcher); AccountPeople = SetupAccountPeopleTable(Accounts, People); AddTestPeople(peopleWire); AddTestAccounts(accountsWire); var personDataThread = new Thread(StreamPersonData); personDataThread.IsBackground = true; personDataThread.Start(new StreamingState { Table = peopleWire, Running = _running, MaxEntries = _maxEntries }); var accountDataThread = new Thread(StreamAccountData); accountDataThread.IsBackground = true; accountDataThread.Start(new StreamingState { Table = accountsWire, Running = _running, MaxEntries = _maxEntries }); Thread.Sleep(GuiDisplayDelay); }
public void Start() { Console.WriteLine("Starting broker service"); _finished.Reset(); var feedsOutputTable = new ReactiveTable(); BrokerTableDefinition.SetupFeedTable(feedsOutputTable); var feeds = new ReactiveBatchedPassThroughTable(feedsOutputTable, new DefaultThreadMarshaller()); var clientsTable = new ReactiveTable(); BrokerTableDefinition.SetupClientFeedTable(clientsTable); SetupClientCcyPairServer(clientsTable, GetTableDecoder()); SetupFeedServer(GetFeedsAndClients(clientsTable, feedsOutputTable), feeds, GetTableEncoder()); StartBrokerFeeds(feeds); Console.WriteLine("Broker service started"); }
public void ShouldFlyweightShouldNotifyOfChanges() { var table = new ReactiveTable <TestModelFlyweight>(); var row = table.AddRow(); var flyweight = table.Flyweights[0]; var changes = new List <string>(); flyweight.PropertyChanged += (sender, args) => changes.Add(args.PropertyName); table.SetValue("TestModelFlyweight.Id", row, 42); table.SetValue("TestModelFlyweight.Name", row, "Hello"); table.SetValue("TestModelFlyweight.Value", row, 43m); var dateTime = DateTime.UtcNow; table.SetValue("TestModelFlyweight.Timestamp", row, dateTime); Check.That(changes).ContainsExactly("Id", "Name", "Value", "Timestamp"); }
public GroupedTableTest(int?drainTableLimit = null) { _drainTableLimit = drainTableLimit; _table1 = new ReactiveTable(); var groupColumn = new ReactiveColumn <string>(GroupColumnId); _table1.AddColumn(groupColumn); var valueColumn = new ReactiveColumn <int>(ValueColumnId); _table1.AddColumn(valueColumn); var groupedTable = new AggregatedTable(_table1); groupedTable.GroupBy <string>(groupColumn.ColumnId); groupedTable.AddAggregate(groupColumn, CountColumnId, () => new Count <string>()); groupedTable.AddAggregate(valueColumn, SumColumnId, () => new Sum <int>()); groupedTable.AddAggregate(valueColumn, AverageColumnId, () => new Average <int>()); groupedTable.AddAggregate(valueColumn, MinColumnId, () => new Min <int>()); groupedTable.AddAggregate(valueColumn, MaxColumnId, () => new Max <int>()); }
public void UpdateTestRow(ReactiveTable table, int rowId, bool includeComplexTypes = true) { table.SetValue(TestTableColumns.IdColumn, rowId, 2); table.SetValue(TestTableColumns.StringColumn, rowId, "Bar"); table.SetValue(TestTableColumns.BoolColumn, rowId, true); table.SetValue(TestTableColumns.DoubleColumn, rowId, 2222.23); table.SetValue(TestTableColumns.ShortColumn, rowId, (short)3131); table.SetValue(TestTableColumns.LongColumn, rowId, 11111111111111); table.SetValue(TestTableColumns.DecimalColumn, rowId, 7678.232m); if (includeComplexTypes) { table.SetValue(TestTableColumns.DateTimeColumn, rowId, new DateTime(1983, 07, 03)); table.SetValue(TestTableColumns.TimespanColumn, rowId, TimeSpan.FromHours(1)); table.SetValue(TestTableColumns.GuidColumn, rowId, Guid.NewGuid()); } table.SetValue(TestTableColumns.FloatColumn, rowId, 1.2343f); table.SetValue(TestTableColumns.ByteColumn, rowId, (byte)234); table.SetValue(TestTableColumns.CharColumn, rowId, 'a'); }
public static int AddTestRow(ReactiveTable table, bool includeComplexTypes = true) { var rowId = table.AddRow(); table.SetValue(TestTableColumns.IdColumn, rowId, 1); table.SetValue(TestTableColumns.StringColumn, rowId, "Foo"); table.SetValue(TestTableColumns.BoolColumn, rowId, false); table.SetValue(TestTableColumns.DoubleColumn, rowId, 1111.232); table.SetValue(TestTableColumns.ShortColumn, rowId, (short)4242); table.SetValue(TestTableColumns.LongColumn, rowId, 22222222222222); table.SetValue(TestTableColumns.DecimalColumn, rowId, 2132.233m); if (includeComplexTypes) { table.SetValue(TestTableColumns.DateTimeColumn, rowId, new DateTime(1982, 04, 10)); table.SetValue(TestTableColumns.TimespanColumn, rowId, TimeSpan.FromDays(1)); table.SetValue(TestTableColumns.GuidColumn, rowId, Guid.NewGuid()); } table.SetValue(TestTableColumns.FloatColumn, rowId, 6.6542f); table.SetValue(TestTableColumns.ByteColumn, rowId, (byte)188); table.SetValue(TestTableColumns.CharColumn, rowId, 'D'); return(rowId); }
public static void SetAndTestValueNotPresent <T>(ReactiveTable setTable, ReactiveTable getTable, int setRowId, int getRowId, T value, string columnId) { setTable.SetValue(columnId, setRowId, value); Assert.AreEqual(default(T), getTable.GetValue <T>(columnId, getRowId)); }
public static void TestValue <T>(ReactiveTable table, int rowId, T value, string columnId) { Assert.AreEqual(value, table.GetValue <T>(columnId, rowId)); }
public static void SetAndTestValue <T>(ReactiveTable setTable, ReactiveTable getTable, int setRowId, int getRowId, T value, string columnId) { setTable.SetValue(columnId, setRowId, value); TestValue(getTable, getRowId, value, columnId); }
public FxCurrencyPairViewModel(ReactiveTable table, int rowId) { _table = table; _rowId = rowId; }
public ReactiveTableEnumerator(ReactiveTable table) { _table = table; _rows = _table.GetRows().GetEnumerator(); }
public ReactivePassThroughTable(ReactiveTable targetTable, IThreadMarshaller marshaller) { _targetTargetTable = targetTable; _marshaller = marshaller; }
public FxDataService() { _currencies = GetCurrenciesTable(); _fxRates = GetRatesTable(); }
public ReactiveObservableCollection(ReactiveTable table) { _table = table; _table.Subscribe(OnNext); }