Пример #1
0
Файл: Form1.cs Проект: Haurum/P2
        // Opretter de legs der håndtere stræk for løberne
        private void LoadLegs()
        {
            for (int i = 1; i < ControlPoints.Count; i++)
            {
                Leg leg = new Leg();
                leg.Name = string.Format("{0} - {1}", i - 1, i);
                foreach (Runner r in Runners)
                {
                    RunnerData runnerdata = new RunnerData();
                    if (r.Visited[i].Cord != null)
                    {
                        runnerdata.reached  = true;
                        runnerdata.distance = Helper.CalcTotalLength(r, r.Visited[i - 1].Second, r.Visited[i].Second);
                        runnerdata.time     = TimeSpan.FromSeconds(r.Visited[i].Second - r.Visited[i - 1].Second);
                        runnerdata.speed    = Helper.CalcSpeedMinsPrKm(runnerdata.distance, (int)(runnerdata.time.TotalSeconds));
                    }
                    else
                    {
                        runnerdata.reached  = false;
                        runnerdata.distance = 0;
                        runnerdata.time     = new TimeSpan(0);
                        runnerdata.speed    = 0;
                    }

                    runnerdata.name = r.RunnerName;
                    leg.Runners.Add(runnerdata);
                }
                leg.Runners = Helper.GetPosAndDiff(leg.Runners);
                Legs.Add(leg);
            }
        }
Пример #2
0
Файл: Form1.cs Проект: Haurum/P2
        // Laver nye instanser af Runners og RunnerData, og kalder passende funktioner der læser data ind.
        private void LoadRunners(string[] GPXFiles)
        {
            int    ColorCount = 0;
            Runner runner;

            MainLeg.Name = string.Format("0 - {0}", ControlPoints.Count - 1);
            ControlPointTime cpt = new ControlPointTime();
            bool             reached;

            foreach (string file in GPXFiles)
            {
                runner = new Runner();
                runner.ReadGPXData(new FileStream(file, FileMode.Open));
                runner.reachedAll = true;
                runner.RouteColor = Colors[ColorCount % 6];
                ColorCount++;
                reached = true;

                // Tester om Runner har nået posterne
                foreach (ControlPoint cp in ControlPoints)
                {
                    cpt = new ControlPointTime();
                    cpt.ControlPointChecker(cp, runner);
                    runner.Visited.Add(cpt);
                    if (cpt.Cord == null)
                    {
                        reached = false;
                    }
                }

                RunnerData runnerdata = new RunnerData();
                runnerdata.name = runner.RunnerName;
                if (reached)
                {
                    runnerdata.distance = Helper.CalcTotalLength(runner, runner.Visited[0].Second,
                                                                 runner.Visited[runner.Visited.Count - 1].Second);
                    runnerdata.time = TimeSpan.FromSeconds(runner.Visited[runner.Visited.Count - 1].Second -
                                                           runner.Visited[0].Second);
                    runnerdata.speed = Helper.CalcSpeedMinsPrKm(runnerdata.distance, (int)(runnerdata.time.TotalSeconds));
                }
                else
                {
                    runnerdata.distance = 0;
                    runnerdata.time     = new TimeSpan(0);
                    runnerdata.speed    = 0;
                }

                runnerdata.reached = reached;
                MainLeg.Runners.Add(runnerdata);
                Runners.Add(runner);
            }
            MainLeg.Runners = Helper.GetPosAndDiff(MainLeg.Runners);
        }