private void ManageFormats() { // copy formats from sensor service _overlayEntries.ForEach(entry => entry.ValueUnitFormat = _sensorService.GetSensorOverlayEntry(entry.Identifier)?.ValueUnitFormat); _overlayEntries.ForEach(entry => entry.ValueAlignmentAndDigits = _sensorService.GetSensorOverlayEntry(entry.Identifier)?.ValueAlignmentAndDigits); SetOnlineMetricFormats(); SetOnlineMetricsIsNumericState(); SetRTSSMetricFormats(); SetRTSSMetricIsNumericState(); SetHardwareIsNumericState(); _overlayEntries.ForEach(entry => entry.FormatChanged = true); }
public void Employees3() { var threadCnt = 20; var iterations = 100; var cnt = 100; var data = new BlockingCollection <Employee>(); var deleted = new BlockingCollection <Employee>(); for (var i = 0; i < threadCnt; i++) { for (var j = 0; j < cnt; j++) { var emp = makeEmployee(new GDID((uint)(i + 1), 0, (ulong)j)); emp.Department = "DPT" + (i % 2).ToString(); data.Add(emp); } } // initial population using (var ds = makeDataStore()) { data.ForEach(e => ds.Insert(e)); } Parallel.For(0, threadCnt, (i) => { using (var ds = makeDataStore()) { var department = "DPT" + (i % 2).ToString(); for (var ii = 0; ii < iterations; ii++) { var fetchQry = new Query <Employee>("CRUD.Queries.Employee.FetchByDepartment") { new Query.Param("pDepartment", department) }; var stored = ds.LoadEnumerable(fetchQry); if (stored.Any()) { var idx = Ambient.Random.NextScaledRandomInteger(0, stored.Count()); var toLoad = stored.ElementAt(idx); var emp = data.First(e => e.GDID == toLoad.GDID); var fetchOne = new Query <Employee>("CRUD.Queries.Employee.FetchByGDID") { new Query.Param("pGDID", toLoad.GDID) }; var row = ds.LoadDoc(fetchOne); if (row == null) { continue; // element was deleted from database by another thread } Aver.IsTrue(emp.Equals(row)); // random deletion if (Ambient.Random.NextScaledRandomInteger(0, 2) == 1) { ds.Delete(row); deleted.Add(row); } } // random insertion if (Ambient.Random.NextScaledRandomInteger(0, 2) == 1) { var newRow = makeEmployee(new GDID((uint)(i + 1), 0, (ulong)(cnt + ii + 1))); newRow.Department = department; data.Add(newRow); ds.Insert(newRow); } } } }); var resultData = new List <Employee>(); foreach (var emp in data) { if (!deleted.Any(e => e.GDID == emp.GDID)) { resultData.Add(emp); } } using (var ds = makeDataStore()) { var fetchQry = new Query <Employee>("CRUD.Queries.Employee.FetchAll"); var employees = ds.LoadEnumerable(fetchQry); Aver.AreEqual(resultData.Count(), employees.Count()); foreach (var emp in resultData) { var row = employees.FirstOrDefault(e => e.GDID == emp.GDID); Aver.IsNotNull(row); Aver.IsTrue(emp.Equals(row)); } } }