/// <summary> /// /// </summary> /// <param name="layerInfo"></param> public static void UpdateUserLayerMetadata(UserDbLayerInfo layerInfo) { if (string.IsNullOrEmpty(layerInfo.m_Name) || layerInfo.m_Id == Guid.Empty) { throw new ArgumentException(Resources.gis_UserDbLayersManager_UpdateUserLayerMetadataException); } using (var conn = new SqlConnection(ConnectionString)) { conn.Open(); var style = (layerInfo.m_Style == null) ? (Object)DBNull.Value : StyleSerializer.SerializeAsDocument(layerInfo.m_Style).InnerXml; var theme = (layerInfo.m_Theme == null) ? (Object)DBNull.Value : ThemeSerializer.SerializeAsDocument(layerInfo.m_Theme).InnerXml; using (var updCommand = new SqlCommand("spGisUpdateUserLayerMetadata", conn)) { updCommand.CommandType = CommandType.StoredProcedure; updCommand.Parameters.AddWithValue("@LAYERID", layerInfo.m_Id); updCommand.Parameters.AddWithValue("@Name", layerInfo.m_Name); updCommand.Parameters.AddWithValue("@STYLE", style); updCommand.Parameters.AddWithValue("@THEME", theme); updCommand.Parameters.AddWithValue("@DESC", string.IsNullOrEmpty(layerInfo.m_Description) ? DBNull.Value : (object)layerInfo.m_Description); updCommand.ExecuteNonQuery(); } conn.Close(); } }
/// <summary> /// Insert new user layer metadata /// </summary> /// <param name="newLayerInfo">LayerInfo. REQUERED: Id, name, UserID, LayerType</param> /// <param name="conn"> </param> /// <param name="trans">Transaction</param> public static void InsertUserLayerMetadata(UserDbLayerInfo newLayerInfo, SqlConnection conn, SqlTransaction trans = null) { if (string.IsNullOrEmpty(newLayerInfo.m_Name)) { throw new ArgumentException(Resources.gis_UserDbLayersManager_InsertUserLayerMetadataException); } var style = (newLayerInfo.m_Style == null)?string.Empty:StyleSerializer.SerializeAsDocument(newLayerInfo.m_Style).InnerXml; var theme = (newLayerInfo.m_Theme == null) ? string.Empty : ThemeSerializer.SerializeAsDocument(newLayerInfo.m_Theme).InnerXml; //TODO[enikulin]: make with SqlHelper using (var addCommand = new SqlCommand("spGisInsertUserLayerMetadata", conn, trans)) { addCommand.CommandType = CommandType.StoredProcedure; addCommand.Parameters.AddWithValue("@ID", newLayerInfo.m_Id); addCommand.Parameters.AddWithValue("@Name", newLayerInfo.m_Name); addCommand.Parameters.AddWithValue("@UserID", newLayerInfo.m_UserId); addCommand.Parameters.AddWithValue("@LayerType", (int)newLayerInfo.m_LayerType); addCommand.Parameters.AddWithValue("@STYLE", style); addCommand.Parameters.AddWithValue("@THEME", theme); addCommand.Parameters.AddWithValue("@DESC", string.IsNullOrEmpty(newLayerInfo.m_Description) ? DBNull.Value : (object)newLayerInfo.m_Description); addCommand.Parameters.AddWithValue("@PIVOTALLAYER", newLayerInfo.m_PivotalLayer); addCommand.ExecuteNonQuery(); } }
/// <summary> /// Insert new user layer metadata /// </summary> /// <param name="newLayerInfo">LayerInfo. REQUERED: Id, name, UserID, LayerType</param> public static void InsertUserLayerMetadata(UserDbLayerInfo newLayerInfo) { using (var conn = new SqlConnection(ConnectionString)) { conn.Open(); InsertUserLayerMetadata(newLayerInfo, conn); conn.Close(); } }
public static EidssUserDbLayer GetUserLayer(Guid layerId) { UserDbLayerInfo info = GetLayerMetadata(layerId); switch (info.m_LayerType) { case UserDbLayerType.BuffZones: return(new EidssUserBufZoneLayer(info.m_Id, info.m_Name)); default: throw new NotImplementedException(); } }
//BufferZoneColumns public static EidssUserBufZoneLayer CreateBufZoneLayer(string name, string desc, PivotLayerType pivotLayerType) { using (var conn = new SqlConnection(ConnectionString)) { conn.Open(); //SqlTransaction trans = conn.BeginTransaction("Create buff zones layer"); //create new metadata var layerInfo = new UserDbLayerInfo(); layerInfo.m_Id = Guid.NewGuid(); layerInfo.m_LayerType = UserDbLayerType.BuffZones; layerInfo.m_Name = name; layerInfo.m_Description = desc; layerInfo.m_UserId = (long)EidssUserContext.User.ID; layerInfo.m_PivotalLayer = pivotLayerType; InsertUserLayerMetadata(layerInfo); //, conn, trans); //create new user layer table in db var addtionalColumns = new List <DataColumn>(); addtionalColumns.Add(new DataColumn("strName", typeof(string))); addtionalColumns.Add(new DataColumn("strDescription", typeof(string))); addtionalColumns.Add(new DataColumn("dblRadius", typeof(double))); addtionalColumns.Add(new DataColumn("dblCenterX", typeof(double))); addtionalColumns.Add(new DataColumn("dblCenterY", typeof(double))); var deleted = new DataColumn("intDeleted", typeof(int)); deleted.DefaultValue = 0; deleted.AllowDBNull = false; addtionalColumns.Add(deleted); var tableName = UserTablePrefix + layerInfo.m_Id.ToString("N"); TableCreator.CreateGeomTable(conn, tableName, addtionalColumns, GisDbShema); if (UserLayersListChanged != null) { UserLayersListChanged(null, EventArgs.Empty); } return(GetUserLayer(layerInfo.m_Id) as EidssUserBufZoneLayer); } }
/// <summary> /// Delete user layer metadata /// </summary> /// <param name="layerInfo">User Layer metadata. REQUERED: valid LayerId </param> public static void RemoveUserLayerMetadata(UserDbLayerInfo layerInfo) { RemoveUserLayerMetadata(layerInfo.m_Id); }