예제 #1
0
 public EditRace(Race race)
 {
     _race = race;
     InitializeComponent();
     LoadBoats();
     this.LoadCourses();
     LoadRace();
 }
예제 #2
0
 public Replay(Race race,Renderer renderer,Notify updateStatistics, Notify updateTime)
 {
     _renderer = renderer;
     race.SetReplayTimes();
     _updateStatistics = updateStatistics;
     _updateTime = updateTime;
     _race = race;
     LoadBoats();
     _renderer.Initialize(this);
     Reset();
 }
예제 #3
0
 private void LoadPaths(Race race)
 {
     DateTime start = race.UtcStart;
     DateTime end = race.UtcEnd;
     _paths = new List<List<ColoredCoordinatePoint>>();
     foreach (Boat b in race.Boats)
     {
         List<ColoredCoordinatePoint> points = new List<ColoredCoordinatePoint>();
         Color c = Color.FromArgb(b.Color);
         SkipperDataSet.SensorReadingsDataTable dt = b.GetSensorReadings(start, end);
         for(int i=0;i<dt.Rows.Count;i++)
         {
             CoordinatePoint cp = new CoordinatePoint(new Coordinate(((SkipperDataSet.SensorReadingsRow)dt.Rows[i]).latitude), new Coordinate(((SkipperDataSet.SensorReadingsRow)dt.Rows[i]).longitude), ((SkipperDataSet.SensorReadingsRow)dt.Rows[i]).altitude);
             points.Add(new ColoredCoordinatePoint(cp, c));
         }
         _paths.Add(points);
     }
 }
예제 #4
0
 public EditCourses(Race race)
 {
     this.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true);
     InitializeComponent();
     LoadPaths(race);
     _lake = race.Lake;
     try
     {
         _image = AmphibianSoftware.VisualSail.Library.SatelliteImageryHelper.GetImageForLake(_lake);
     }
     catch (Exception)
     {
         _image = null;
     }
     
     _course = race.Course;
     LoadCourse();
 }
예제 #5
0
        private static void SetBoats(Race race,List<Boat> boats)
        {
            List<SkipperDataSet.RaceBoatRow> raceBoats = new List<SkipperDataSet.RaceBoatRow>();
            var query = from r in Persistance.Data.RaceBoat.AsEnumerable()
                        where (int)r["race_id"] == race.Id
                        select r;
            foreach (SkipperDataSet.RaceBoatRow r in query)
            {
                raceBoats.Add(r);
            }
            foreach (SkipperDataSet.RaceBoatRow r in raceBoats)
            {
                r.Delete();
            }

            foreach (Boat r in boats)
            {
                Persistance.Data.RaceBoat.AddRaceBoatRow(race.Row, r.Row);
            }
        }
예제 #6
0
 private static List<Boat> FindBoats(Race race)
 {
         List<Boat> boats = new List<Boat>();
         var query = from r in Persistance.Data.RaceBoat.AsEnumerable()
                     where (int)r["race_id"] == race.Id
                     select r;
         foreach (SkipperDataSet.RaceBoatRow r in query)
         {
             boats.Add(Boat.FindById(r.boat_id));
         }
         return boats;
 }
예제 #7
0
 private void AutoImportGpsDataFileParameters(Race race)
 {
     int number = 0;
     foreach (string gpsDataFile in _gpsDataFileParameters)
     {
         try
         {
             AmphibianSoftware.VisualSail.Data.Boat b = new AmphibianSoftware.VisualSail.Data.Boat();
             b.BoatType = BoatType.FindAll()[0];
             System.IO.FileInfo file = new System.IO.FileInfo(gpsDataFile);
             if (file.Name.Contains("."))
             {
                 b.Name = file.Name.Substring(0, file.Name.LastIndexOf("."));
             }
             else
             {
                 b.Name = file.Name;
             }
             b.Color = ColorHelper.AutoColorPick(number).ToArgb();
             number++;
             b.Number = number.ToString();
             b.Save();
             if (System.IO.File.Exists(gpsDataFile))
             {
                 AmphibianSoftware.VisualSail.Data.Import.FileImporter fi = AmphibianSoftware.VisualSail.Data.Import.FileImporter.DetectFileType(gpsDataFile);
                 //BusyDialogManager.Show("Importing Data");
                 SensorFile sf = fi.ImportFile(gpsDataFile, b);
                 sf.Save();
                 //BusyDialogManager.HideAll();
             }
             race.Boats.Add(b);
         }
         catch (Exception e)
         {
             MessageBox.Show("A problem occured while loading " + gpsDataFile+"."+Environment.NewLine+e.Message);
         }
     }
     _gpsDataFileParameters.Clear();
     _gpsDataFileParameters = null;
 }