/// <summary> /// InsertWardDetails /// </summary> /// <param name="zoneId"></param> /// <param name="wardNumber"></param> /// <param name="wardName"></param> /// <param name="cordinatePath"></param> public void InsertWard(Guid zoneId, int wardNumber, string wardName, string cordinatePath) { IList <CordinatePoint> cordinates = ReadCordinates(cordinatePath); CordinatePoint top, left, bottom, right = null; ObtainCordinatePoints(cordinates, out top, out left, out bottom, out right); var wardId = InsertWardMetadata(zoneId, wardNumber, wardName, top, left, bottom, right, context); InsertCordinateMetadata(wardId, cordinates, context); }
/// <summary> /// Obtain CordinatePoints /// </summary> /// <param name="corDic"></param> private void ObtainCordinatePoints(IList <CordinatePoint> cordinates, out CordinatePoint top, out CordinatePoint left, out CordinatePoint bottom, out CordinatePoint right) { top = new CordinatePoint(); left = new CordinatePoint(); bottom = new CordinatePoint(); right = new CordinatePoint(); if (cordinates.Count > 0) { var topList = cordinates.OrderByDescending(@orderby => @orderby.Latitude).First(); top = cordinates.Where(@w => @w.Latitude.Equals(topList.Latitude)).OrderBy(@orderby => @orderby.Longitude).First(); var leftList = cordinates.OrderBy(@orderby => @orderby.Longitude).First(); left = cordinates.Where(@w => @w.Longitude.Equals(leftList.Longitude)).OrderBy(@orderby => @orderby.Latitude).First(); var bottomList = cordinates.OrderBy(@orderby => @orderby.Latitude).First(); bottom = cordinates.Where(@w => @w.Latitude.Equals(bottomList.Latitude)).OrderBy(@orderby => @orderby.Longitude).First(); var rightList = cordinates.OrderByDescending(@orderby => @orderby.Longitude).First(); right = cordinates.Where(@w => @w.Longitude.Equals(rightList.Longitude)).OrderBy(@orderby => @orderby.Latitude).First(); } }
/// <summary> /// Obtain CordinatePoints /// </summary> /// <param name="corDic"></param> private void ObtainCordinatePoints(IList<CordinatePoint> cordinates, out CordinatePoint top, out CordinatePoint left, out CordinatePoint bottom, out CordinatePoint right) { top = new CordinatePoint(); left = new CordinatePoint(); bottom = new CordinatePoint(); right = new CordinatePoint(); if (cordinates.Count > 0) { var topList = cordinates.OrderByDescending(@orderby => @orderby.Latitude).First(); top = cordinates.Where(@w => @w.Latitude.Equals(topList.Latitude)).OrderBy(@orderby => @orderby.Longitude).First(); var leftList = cordinates.OrderBy(@orderby => @orderby.Longitude).First(); left = cordinates.Where(@w => @w.Longitude.Equals(leftList.Longitude)).OrderBy(@orderby => @orderby.Latitude).First(); var bottomList = cordinates.OrderBy(@orderby => @orderby.Latitude).First(); bottom = cordinates.Where(@w => @w.Latitude.Equals(bottomList.Latitude)).OrderBy(@orderby => @orderby.Longitude).First(); var rightList = cordinates.OrderByDescending(@orderby => @orderby.Longitude).First(); right = cordinates.Where(@w => @w.Longitude.Equals(rightList.Longitude)).OrderBy(@orderby => @orderby.Latitude).First(); } }
private Guid InsertWardMetadata(Guid zoneId, int wardNumber, string wardName, CordinatePoint top, CordinatePoint left, CordinatePoint bottom, CordinatePoint right, DataAccessDataContext context) { Guid wardId = Guid.NewGuid(); Ward ward = new Ward { Id = wardId, Number = wardNumber, Name = wardName, ZoneId = zoneId, TopCordinate = top.Latitude + "," + top.Longitude, LeftCordinate = left.Latitude + "," + left.Longitude, BottomCordinate = bottom.Latitude + "," + bottom.Longitude, RightCordinate = right.Latitude + "," + right.Longitude }; context.Wards.InsertOnSubmit(ward); SubmitData(); return wardId; }
private Guid InsertWardMetadata(Guid zoneId, int wardNumber, string wardName, CordinatePoint top, CordinatePoint left, CordinatePoint bottom, CordinatePoint right, DataAccessDataContext context) { Guid wardId = Guid.NewGuid(); Ward ward = new Ward { Id = wardId, Number = wardNumber, Name = wardName, ZoneId = zoneId, TopCordinate = top.Latitude + "," + top.Longitude, LeftCordinate = left.Latitude + "," + left.Longitude, BottomCordinate = bottom.Latitude + "," + bottom.Longitude, RightCordinate = right.Latitude + "," + right.Longitude }; context.Wards.InsertOnSubmit(ward); SubmitData(); return(wardId); }