private DbService CreateTestDb() { const string filename = "UnitTestDb.dbs"; if (File.Exists(filename)) { File.Delete(filename); } var db = new DbService(); db.Open(filename); // Add data for (var i = 0; i < 10; i++) { db.AddResultTime(new Result { Position = i + 1, Time = new TimeSpan(0, i + 1, 0), RaceNumber = i + 1, WmaScore = i + 1 }); } return(db); }
/// <summary> /// When runners arrive, add this runner number. /// </summary> public void AddResultRunnerNumber(int number) { try { db.AddResultNumber(number); } catch (NoMoreResultsException) { // Create new result and add it with estimated time - assume 5 seconds to travel up the funnel. var newResult = new Result { Position = db.GetNextPosition(), RaceId = db.GetNextPosition(), RaceNumber = number, Time = clockTime.CurrentTime.Add(new TimeSpan(0, 0, -5)) }; Result.AddDubiousReason(newResult, Result.DubiousResultEnum.EstimatedTime); db.AddResultTime(newResult); // This adds the full result. db.CheckResults(); } OnResultDataChange(); }
private void ProcessResultQueue() { Trace.WriteLineIf(AppController.traceSwitch.TraceInfo, "Result processing queue started..."); processTaskRunning = true; while (processTaskRunning) { try { var update = false; while (Count > 0) { var res = Dequeue(); db.AddResultTime(new Result { Position = db.GetNextPosition(), RaceId = appController.CurrentRace.Oid, Time = res.datetime, }); Trace.WriteLineIf(AppController.traceSwitch.TraceInfo, "Race result: " + res); update = true; } if (update && NewResult != null) { NewResult(this, null); } // Delay so we don't spin in a loop. Thread.Sleep(250); } catch (Exception ex) { Trace.WriteLineIf(AppController.traceSwitch.TraceError, "Error processing result queue: " + ex.Message); } } Trace.WriteLineIf(AppController.traceSwitch.TraceInfo, "Result processing queue terminating..."); }
private DbService CreateTestDb() { const string filename = "UnitTestDb.dbs"; if ( File.Exists( filename ) ) { File.Delete( filename ); } var db = new DbService(); db.Open(filename); // Add data for (var i = 0; i < 10; i++) { db.AddResultTime(new Result { Position = i + 1, Time = new TimeSpan(0, i + 1, 0), RaceNumber = i + 1, WmaScore = i + 1 }); } return db; }