Exemplo n.º 1
0
        public long AddNewZone(UserBufZone bufZone)
        {
            using (var conn = new SqlConnection((DataSource as EidssSqlServer2008).ConnectionString))
            {
                conn.Open();

                using (var addCommand = conn.CreateCommand())
                {
                    addCommand.CommandType = CommandType.Text;

                    addCommand.CommandText = string.Format(
                        @"INSERT INTO {0} 
                                (geomShape, 
                                 strName, 
                                 strDescription, 
                                 dblRadius, 
                                 dblCenterX, 
                                 dblCenterY) 
                        VALUES (geometry::STGeomFromWKB(@GeomShape, 3857), 
                                @Name, 
                                @Desc, 
                                @Radius,
                                @CenterX, 
                                @CenterY); 
                        select scope_identity()",
                        (DataSource as EidssSqlServer2008).Table);

                    var param = addCommand.Parameters.Add("@GeomShape", SqlDbType.VarBinary, Int32.MaxValue);
                    param.Value = bufZone.Geometry == null ? DBNull.Value : (object)bufZone.Geometry.AsBinary();
                    addCommand.Parameters.AddWithValue("@Name", string.IsNullOrEmpty(bufZone.Name) ? DBNull.Value : (object)bufZone.Name);
                    addCommand.Parameters.AddWithValue("@Desc", string.IsNullOrEmpty(bufZone.Description) ? DBNull.Value : (object)bufZone.Description);
                    addCommand.Parameters.AddWithValue("@Radius", bufZone.Radius);
                    if (bufZone.Center != null)
                    {
                        var projectedCenter = bufZone.Center;//GeometryTransform.TransformPoint(bufZone.Center,
                        //                                 CoordinateSystems.SphericalMercatorCS,
                        //                                 CoordinateSystems.WGS84);
                        addCommand.Parameters.AddWithValue("@CenterX", projectedCenter.X);
                        addCommand.Parameters.AddWithValue("@CenterY", projectedCenter.Y);
                    }
                    else
                    {
                        addCommand.Parameters.AddWithValue("@CenterX", 0);
                        addCommand.Parameters.AddWithValue("@CenterY", 0);
                    }

                    var result = (decimal)addCommand.ExecuteScalar();
                    return(decimal.ToInt64(result));
                }
            }
        }
Exemplo n.º 2
0
        public long UpdateZone(UserBufZone bufZone)
        {
            using (var conn = new SqlConnection((DataSource as EidssSqlServer2008).ConnectionString))
            {
                conn.Open();

                using (var addCommand = conn.CreateCommand())
                {
                    addCommand.CommandType = CommandType.Text;

                    addCommand.CommandText = string.Format(
                        @"UPDATE {0} SET 
                            geomShape = geometry::STGeomFromWKB(@GeomShape, 3857),
                            strName = @Name, 
                            strDescription = @Desc, 
                            dblRadius = @Radius, 
                            dblCenterX =  @CenterX,
                            dblCenterY = @CenterY
                          WHERE idfsGeoObject = @id;",
                        (DataSource as EidssSqlServer2008).Table);

                    var param = addCommand.Parameters.Add("@GeomShape", SqlDbType.VarBinary, Int32.MaxValue);
                    param.Value = bufZone.Geometry == null ? DBNull.Value : (object)bufZone.Geometry.AsBinary();
                    addCommand.Parameters.AddWithValue("@Name", string.IsNullOrEmpty(bufZone.Name) ? DBNull.Value : (object)bufZone.Name);
                    addCommand.Parameters.AddWithValue("@Desc", string.IsNullOrEmpty(bufZone.Description) ? DBNull.Value : (object)bufZone.Description);
                    addCommand.Parameters.AddWithValue("@Radius", bufZone.Radius);
                    if (bufZone.Center != null)
                    {
                        var projectedCenter = bufZone.Center;
                        //GeometryTransform.TransformPoint(bufZone.Center,
                        //         CoordinateSystems.SphericalMercatorCS,
                        //         CoordinateSystems.WGS84);
                        addCommand.Parameters.AddWithValue("@CenterX", projectedCenter.X);
                        addCommand.Parameters.AddWithValue("@CenterY", projectedCenter.Y);
                    }
                    else
                    {
                        addCommand.Parameters.AddWithValue("@CenterX", 0);
                        addCommand.Parameters.AddWithValue("@CenterY", 0);
                    }


                    addCommand.Parameters.AddWithValue("@id", bufZone.ID);

                    return(addCommand.ExecuteNonQuery());
                }
            }
        }