Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
 /// <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();
 }
Ejemplo n.º 3
0
        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...");
        }
Ejemplo n.º 4
0
        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;
        }