示例#1
0
        /// <summary> 
        /// Imports a DxfFile that is in the specified Format. Any changes on the import schema may cause Errors!
        /// </summary>
        /// <param name="filepath"></param>
        public static void importFromDxf(string filepath, string DB_PATH)
        {
            StreamReader sr = new StreamReader(filepath);
            DatabaseDataContext dataContext = new DatabaseDataContext(DB_PATH);
            foreach (t_PolygonPoint tp in dataContext.t_PolygonPoints)
            {
                dataContext.t_PolygonPoints.DeleteOnSubmit(tp);
            }
               ///dataContext.t_PolygonPoints.DeleteAllOnSubmit(dataContext.t_PolygonPoints.ToList());
            dataContext.SubmitChanges();
            dataContext.t_Polygons.DeleteAllOnSubmit(dataContext.t_Polygons);
            dataContext.SubmitChanges();
            int id = 1;

            List<string> lineList = new List<string>();
            while (!sr.EndOfStream)
            {
                lineList.Add(sr.ReadLine());
            }
            string[] lines = lineList.ToArray();
            for (int i = 1; i < lines.Length; i++) //Looping through Array, starting with 1 (lines[0] is "0")
            {
                //Find Lines Containing a new Element Definition
                if (lines[i] == "LWPOLYLINE" && lines[i - 1] == "  0") //
                {
                    //Reading out Layer ( "8" [\n] layerName) = Type of Element
                    if (lines[i + 5] == "  8" && lines[i + 6].Contains("PROH")) // "Prohibited Zone" = ForbiddenZone
                    {
                        if (lines[i + 9] == " 90")
                        {
                            int numberOfVertexes = int.Parse(lines[i + 10]);
                            t_Polygon p = new t_Polygon();
                            p.ID = id++;

                            for (int j = 0; j < numberOfVertexes; j++)
                            {
                                t_PolygonPoint point = new t_PolygonPoint();
                                GpsPoint gp = new GpsPoint(double.Parse(lines[i + (j * 4) + 18], NumberFormatInfo.InvariantInfo) * 1000, double.Parse(lines[i + (j * 4) + 16], NumberFormatInfo.InvariantInfo) * 1000, GpsPointFormatImport.Swiss);
                                point.longitude = (decimal)gp.Longitude;
                                point.latitude = (decimal)gp.Latitude;
                                point.ID_Polygon = p.ID;
                                dataContext.t_PolygonPoints.InsertOnSubmit(point);
                            }
                            dataContext.t_Polygons.InsertOnSubmit(p);
                        }
                    }
                }
            }

            dataContext.SubmitChanges();
        }
示例#2
0
 partial void Deletet_Polygon(t_Polygon instance);
示例#3
0
 partial void Updatet_Polygon(t_Polygon instance);
示例#4
0
 partial void Insertt_Polygon(t_Polygon instance);
示例#5
0
		private void detach_t_Polygons(t_Polygon entity)
		{
			this.SendPropertyChanging();
			entity.t_PolygonGroup = null;
		}
示例#6
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="ID_PolygonGroup"></param>
 /// <returns></returns>
 public List<t_Polygon> GetPolygonsByGroup(int ID_PolygonGroup)
 {
     try
     {
         DatabaseDataContext dataContext = new DatabaseDataContext(DB_PATH);
         List<t_Polygon> Result = new List<t_Polygon>();
         foreach (t_Polygon p in dataContext.t_Polygons.Where(p => p.ID_PolygonGroup == ID_PolygonGroup))
         {
             t_Polygon tmp = new t_Polygon();
             tmp.ID = p.ID;
             tmp.ID_PolygonGroup = p.ID_PolygonGroup;
             tmp.Type = p.Type;
             Result.Add(tmp);
         }
         return Result;
     }
     catch (Exception ex)
     {
         LogManager.AddLog(DB_PATH, 0, "ANRLDataService.svc.cs:GetPolygonsByGroup", ex.ToString());
     }
     return null;
 }
示例#7
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="Race"></param>
        public void AddRace(t_Race Race)
        {
            try
            {
                LogManager.AddLog(DB_PATH, 4, "ANRLDataService.svc.cs:AddRace", "");
                DatabaseDataContext dataContext = new DatabaseDataContext(DB_PATH);
                t_PolygonGroup PolygonGroup = new t_PolygonGroup();

                #region Polygongroup & Polygons & PolygonPoints
                if (Race.t_PolygonGroup != null)
                {
                    if (Race.ID_PolygonGroup == 0)
                    {
                        PolygonGroup.Name = Race.t_PolygonGroup.Name;
                        dataContext.t_PolygonGroups.InsertOnSubmit(PolygonGroup);
                        dataContext.SubmitChanges();

                        if (Race.t_PolygonGroup.t_Polygons.Count > 0)
                        {
                            foreach (t_Polygon poly in Race.t_PolygonGroup.t_Polygons)
                            {
                                t_Polygon tmp_poly = new t_Polygon();
                                tmp_poly.Type = poly.Type;
                                tmp_poly.ID_PolygonGroup = PolygonGroup.ID;
                                dataContext.t_Polygons.InsertOnSubmit(tmp_poly);
                                dataContext.SubmitChanges();
                                foreach (t_PolygonPoint pp in poly.t_PolygonPoints)
                                {
                                    t_PolygonPoint tmpPoint = new t_PolygonPoint();
                                    tmpPoint.ID_Polygon = tmp_poly.ID;
                                    tmpPoint.longitude = pp.longitude;
                                    tmpPoint.latitude = pp.latitude;
                                    tmpPoint.altitude = pp.altitude;
                                    dataContext.t_PolygonPoints.InsertOnSubmit(tmpPoint);
                                }
                            }
                        }
                    }
                    else
                    {
                        PolygonGroup.ID = (int)Race.ID_PolygonGroup;
                    }
                    dataContext.SubmitChanges();
                }
                #endregion
                t_Race r = new t_Race();
                if (Race.ID_Pilot_0 != 0) r.ID_Pilot_0 = Race.ID_Pilot_0;
                if (Race.ID_Pilot_1 != 0) r.ID_Pilot_1 = Race.ID_Pilot_1;
                if (Race.ID_Pilot_2 != 0) r.ID_Pilot_2 = Race.ID_Pilot_2;
                if (Race.ID_Pilot_3 != 0) r.ID_Pilot_3 = Race.ID_Pilot_3;
                if (Race.ID_PolygonGroup != 0)
                {
                    r.ID_PolygonGroup = Race.ID_PolygonGroup;
                }
                else
                {
                    r.ID_PolygonGroup = PolygonGroup.ID;
                }
                r.Name = Race.Name;
                r.TimeEnd = Race.TimeEnd;
                r.TimeStart = Race.TimeStart;
                dataContext.t_Races.InsertOnSubmit(r);
                dataContext.SubmitChanges();
                LogManager.AddLog(DB_PATH, 4, "ANRLDataService.svc.cs:AddRace", "Sucessfull Added " + r.ID);
            }
            catch (Exception ex)
            {
                LogManager.AddLog(DB_PATH, 0, "ANRLDataService.svc.cs:AddRace", ex.ToString());
            }
        }