Ejemplo n.º 1
0
        public void It_Should_Be_Possible_To_Connect_An_Athlete_To_A_Startnumber()
        {
            Given("we have an athlete and a startnumber registrert", () =>
            {
                athlete.ConnectToRace(race.RaceId);
                timer = CreateNewTimerModelWithCheckpoints(race);
                checkpointOrder = new CheckpointOrderModel();
                checkpointOrder.AddCheckpointOrderDB(timer.CurrentCheckpointId, 1);
                timer.Start();
                timer.AddRuntime(400, timer.GetFirstCheckpointId());
                intermediate = new RaceIntermediateModel(timer.CurrentCheckpointId, checkpointOrder.ID, timer.CheckpointRuntimes[timer.CurrentCheckpointId].First().Key);
                intermediate.Save();
            });

            When("we want to connect athletes to startnumbers", () =>
            {
                RaceIntermediateModel.MergeAthletes(race.RaceId);
            });

            Then("athletes should be connected to raceintermediate", () =>
            {
                RaceIntermediateModel.GetRaceintermediatesForRace(race.RaceId).First().AthleteId.ShouldNotBeNull();

            });
        }
        public void Get_Next_OrderNumber_In_Ascending_Order_After_Inserting_StartNumber()
        {
            CheckpointOrderModel testCheckpointOrder = null;
            int ordernum1 = 0, ordernum2 = 0;
            int checkpointId = 1;
            Entities context = new Entities();
            Given("We have a CheckpointOrder", () =>
            {
                testCheckpointOrder = new CheckpointOrderModel();

            });

            When("We insert start number", () =>
            {
                testCheckpointOrder.AddCheckpointOrderDB(checkpointId, 2);
                ordernum1 = (int)(context.CheckpointOrders.OrderByDescending(ordnum => ordnum.OrderNumber).First().OrderNumber);
            });

            Then("We should have next order number in ascending order in database", () =>
            {
                testCheckpointOrder.AddCheckpointOrderDB(checkpointId, 3);
                ordernum2 = (int)(context.CheckpointOrders.OrderByDescending(ordnum => ordnum.OrderNumber).First().OrderNumber);
                ordernum2.ShouldBe(ordernum1 + 1);
            });
        }
 public void TestSetup()
 {
     timeMerger = new TimeMergerModel();
     timer = new TimerModel();
     checkpoint1 = new CheckpointModel("Checkpoint1", timer, 1);
     checkpoint2 = new CheckpointModel("Checkpoint2", timer, 2);
     timer.CurrentCheckpointId = timer.GetFirstCheckpointId();
     timer.CheckpointRuntimes.Add(timer.CurrentCheckpointId, new Dictionary<int, int>());
     checkpointOrderModel = new CheckpointOrderModel();
 }
Ejemplo n.º 4
0
 public static CheckpointOrderModel GetCheckpointOrderById(int id)
 {
     using (var ctx = new Entities())
     {
         var checkpointOrder = ctx.CheckpointOrders.Single(chkpnt => chkpnt.ID == id);
         var checkpointModel = new CheckpointOrderModel()
         {
             ID = checkpointOrder.ID,
             CheckpointID = (int)checkpointOrder.CheckpointID,
             StartingNumber = (int)checkpointOrder.StartingNumber,
             OrderNumber = (int)checkpointOrder.OrderNumber
         };
         return checkpointModel;
     }
 }
Ejemplo n.º 5
0
 public void TestSetup()
 {
     club = new ClubModel("Test IK");
     eventModel = new EventModel("TestEvent", DateTime.Today);
     eventModel.Save();
     athlete = new AthleteModel("Tester", "Test");
     athlete.StartNumber = 1;
     athlete.Club = club;
     athlete.SaveToDb();
     race = new RaceModel("TestRace", DateTime.Today);
     race.EventId = eventModel.EventId;
     race.Save();
     checkpointOrder = null;
     intermediate = null;
     checkpoint = null;
 }
Ejemplo n.º 6
0
        public static CheckpointOrderModel Create(int checkpointId, int startingNumber, int orderNumber)
        {
            CheckpointOrderModel checkpointOrderModel = new CheckpointOrderModel();

            using (var ctx = new Entities())
            {
                CheckpointOrder checkpointOrder = new CheckpointOrder();
                checkpointOrder.CheckpointID = checkpointId;
                checkpointOrder.StartingNumber = startingNumber;
                checkpointOrder.StartingNumber = (ctx.CheckpointOrders.OrderByDescending(chkpnt => chkpnt.CheckpointID).First().CheckpointID) + 1;
                ctx.CheckpointOrders.AddObject(checkpointOrder);
                ctx.SaveChanges();
                checkpointOrder.ID = (int)ctx.CheckpointOrders.OrderByDescending(chkpnt => chkpnt.CheckpointID).First().CheckpointID;
            }

            return checkpointOrderModel;
        }
Ejemplo n.º 7
0
        public void Get_Next_OrderNumber_In_Ascending_Order_After_Inserting_StartNumber()
        {
            CheckpointOrderModel testCheckpointOrder = null;
            int ordernum1 = 0, ordernum2 = 0;
            int checkpointId = 1;
            int startnum1 = 4, startnum2 = 5;
            Entities context = new Entities();
            Given("We have a CheckpointOrder", () =>
            {
                testCheckpointOrder = new CheckpointOrderModel();
            });

            When("We insert start number", () =>
            {
                using (var ctxTest = new Entities())
                {
                    if (ctxTest.CheckpointOrders.Any(chkpnt => (chkpnt.StartingNumber == startnum1 && chkpnt.CheckpointID == checkpointId)))
                    {
                        var checkpointOrderToDelete = ctxTest.CheckpointOrders.Where(checkpointOrder => (checkpointOrder.StartingNumber == startnum1 && checkpointOrder.CheckpointID == checkpointId)).Single();
                        ctxTest.CheckpointOrders.DeleteObject(checkpointOrderToDelete);
                        ctxTest.SaveChanges();
                    }
                }
                testCheckpointOrder.AddCheckpointOrderDB(checkpointId, startnum1);
                ordernum1 = (int)(context.CheckpointOrders.Where(chkpnt => chkpnt.CheckpointID == checkpointId).OrderByDescending(ordnum => ordnum.OrderNumber).First().OrderNumber);
            });

            Then("We should have next order number in ascending order in database", () =>
            {
                using (var ctxTest = new Entities())
                {
                    if (ctxTest.CheckpointOrders.Any(chkpnt => (chkpnt.StartingNumber == startnum2 && chkpnt.CheckpointID == checkpointId)))
                    {
                        var checkpointOrderToDelete = ctxTest.CheckpointOrders.Where(checkpointOrder => (checkpointOrder.StartingNumber == startnum2 && checkpointOrder.CheckpointID == checkpointId)).Single();
                        ctxTest.CheckpointOrders.DeleteObject(checkpointOrderToDelete);
                        ctxTest.SaveChanges();
                    }
                }
                testCheckpointOrder.AddCheckpointOrderDB(checkpointId, startnum2);
                ordernum2 = (int)(context.CheckpointOrders.Where(chkpnt => chkpnt.CheckpointID == checkpointId).OrderByDescending(ordnum => ordnum.OrderNumber).First().OrderNumber);
                ordernum2.ShouldBe(ordernum1 + 1);
            });
        }
Ejemplo n.º 8
0
 /// <summary>
 /// Creates the new timer model with checkpoints.
 /// </summary>
 /// <returns></returns>
 private void Setup()
 {
     eventModel = new EventModel("Testevent", DateTime.Today);
     eventModel.Save();
     race = new RaceModel("Testrace", DateTime.Today);
     race.EventId = eventModel.EventId;
     race.Save();
     timer = new TimerModel();
     timer.RaceID = race.RaceId;
     checkpoint = new CheckpointModel("Checkpoint1", timer, race, 1);
     checkpoint.SaveToDb();
     checkpointorder = new CheckpointOrderModel();
     checkpointorder.AddCheckpointOrderDB(checkpoint.Id, 12);
     checkpointorder.StartingNumber = 12;
     timer.CurrentCheckpointId = timer.GetFirstCheckpointId();
     timer.CheckpointRuntimes.Add(timer.CurrentCheckpointId, new Dictionary<int, int>());
     timer.SaveToDb();
     timestart = new TimeStartnumberModel(timer);
     timestart.CheckpointOrder = checkpointorder;
     //timestart.AddStartnumber(checkpoint.Id, checkpointorder.StartingNumber, 500);
 }
Ejemplo n.º 9
0
 //
 // GET: /CheckpointOrder/
 public ActionResult Index(int raceId)
 {
     var checkpoint = new CheckpointOrderModel();
     Session["checkpoint"] = checkpoint;
     ViewBag.RaceId = raceId;
     var race = RaceModel.GetById(raceId);
     ViewBag.RaceName = race.Name;
     ViewBag.Checkpoints = CheckpointModel.GetCheckpoints(raceId);
     return View(checkpoint);
 }
        public void StartNumber_Should_Be_Added_In_Database()
        {
            CheckpointOrderModel testCheckpointOrder = null;
            int checkpointId = 1;
            int startingNumber = 4;
            Given("We have CheckpointOrder model ", () =>
            {
                testCheckpointOrder = new CheckpointOrderModel();
            });

            When("We insert a new start number", () =>
            {
                testCheckpointOrder.AddCheckpointOrderDB(checkpointId, startingNumber);
            });

            Then("Start Number should be saved in database", () =>
            {
                Entities contextDB = new Entities();
                var startNum = contextDB.CheckpointOrders.Where
                    (chkpntid => (chkpntid.CheckpointID == checkpointId && chkpntid.StartingNumber == startingNumber)).
                    Select(startnum => startnum.StartingNumber);
                startNum.ShouldBe(startingNumber);
            });
        }
Ejemplo n.º 11
0
 public void TestSetup()
 {
     timeMerger = new TimeMergerModel();
     timer = new TimerModel();
     eventModel = new EventModel("TestEvent", DateTime.Today);
     eventModel.Save();
     race = new RaceModel("SomeRace", new DateTime(2007, 10, 3));
     race.EventId = eventModel.EventId;
     race.Save();
     checkpoint1 = new CheckpointModel("Checkpoint1", timer, race, 1);
     checkpoint2 = new CheckpointModel("Checkpoint2", timer, race, 2);
     timer.CurrentCheckpointId = timer.GetFirstCheckpointId();
     timer.CheckpointRuntimes.Add(timer.CurrentCheckpointId, new Dictionary<int, int>());
     checkpointOrderModel = new CheckpointOrderModel();
 }
Ejemplo n.º 12
0
        public void StartNumber_Should_Be_Added_In_Database()
        {
            CheckpointOrderModel testCheckpointOrder = null;
            int checkpointId = 1;
            int startingNumber = 100;
            using (var ctxTest = new Entities())
            {
                if (ctxTest.CheckpointOrders.Any(chkpnt => (chkpnt.StartingNumber == startingNumber && chkpnt.CheckpointID == checkpointId)))
                {
                    var checkpointOrderToDelete = ctxTest.CheckpointOrders.Where(checkpointOrder => (checkpointOrder.StartingNumber == startingNumber && checkpointOrder.CheckpointID == checkpointId)).Single();
                    ctxTest.CheckpointOrders.DeleteObject(checkpointOrderToDelete);
                    ctxTest.SaveChanges();
                }
            }
            Given("We have CheckpointOrder model ", () =>
            {
                testCheckpointOrder = new CheckpointOrderModel();
            });

            When("We insert a new start number", () =>
            {
                testCheckpointOrder.AddCheckpointOrderDB(checkpointId, startingNumber);
            });

            Then("Start Number should be saved in database", () =>
            {
                //Entities contextDB = new Entities();
                //var startNum = contextDB.CheckpointOrders.Where
                //    (chkpntid => (chkpntid.CheckpointID == checkpointId && chkpntid.StartingNumber == startingNumber)).
                //    Select(startnum => startnum.StartingNumber);
                //startNum.ShouldBe(startingNumber);

                Entities contextDB = new Entities();
                int startNum = (int) (contextDB.CheckpointOrders.
                    Where(chkpntid =>
                        (chkpntid.CheckpointID == checkpointId && chkpntid.StartingNumber == startingNumber)).
                        Single().StartingNumber);
                startNum.ShouldBe(startingNumber);
            });
        }
Ejemplo n.º 13
0
        public ActionResult Index(int raceId)
        {
            var race = RaceModel.GetById(raceId);

            TimerModel timer;
            if (race.GetTimerId().HasValue)
                timer = TimerModel.GetTimerById(race.GetTimerId().Value);
            else
            {
                timer = new TimerModel();
                timer.RaceID = raceId;
            }
            timer.SaveToDb();

            TimeStartnumberModel timeStartnumberModel;
            timeStartnumberModel = new TimeStartnumberModel(timer);
            var checkpointOrder = new CheckpointOrderModel();

            ViewBag.Checkpoints = CheckpointModel.GetCheckpoints(raceId);
            ViewBag.RaceId = raceId;
            ViewBag.RaceName = race.Name;
            timeStartnumberModel.ChangeCheckpoint(timer.GetFirstCheckpointId());
            timeStartnumberModel.CheckpointOrder = checkpointOrder;
            Session["TimeStartnumber"] = timeStartnumberModel;
            return View("Index", timeStartnumberModel);
        }
 public static CheckpointOrderModel GetById(int id)
 {
     CheckpointOrder checkpointOrder = new Entities().CheckpointOrders.Where(chkpnt => chkpnt.ID == id).SingleOrDefault();
     var checkpointOrderModel = new CheckpointOrderModel()
     {
         CheckpointID = checkpointOrder.CheckpointID.HasValue ? checkpointOrder.CheckpointID.Value : 0,
         ID = checkpointOrder.ID,
         OrderNumber = checkpointOrder.OrderNumber.HasValue ? checkpointOrder.OrderNumber.Value : 0,
         StartingNumber = checkpointOrder.StartingNumber.HasValue ? checkpointOrder.StartingNumber.Value : 0,
         CheckpointOrderDic = new Dictionary<int, int>()
     };
     return checkpointOrderModel;
 }