/// <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(); }
partial void Deletet_Polygon(t_Polygon instance);
partial void Updatet_Polygon(t_Polygon instance);
partial void Insertt_Polygon(t_Polygon instance);
private void detach_t_Polygons(t_Polygon entity) { this.SendPropertyChanging(); entity.t_PolygonGroup = null; }
/// <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; }
/// <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()); } }