public Result StoreEditFieldInfo(long pageRevisionID, EditFieldInfo info) { try { using (TransactionScope scope = new TransactionScope()) { if (info.Data != null && info.DataID == 0) { info.DataID = DatabaseManager.GetUniqueID(); } SQLiteConnection connection = (SQLiteConnection)DatabaseManager.DatabaseEngine.GetConnection(); SQLiteCommand cmd = connection.CreateCommand(); cmd.CommandText = Procedures["Store EditFieldInfo"]; cmd.Connection = connection; cmd.Parameters.Add(NewParameter("@PageRevisionID", pageRevisionID, DbType.Int64)); cmd.Parameters.Add(NewParameter("@EditFieldID", info.DataID, DbType.Int64)); cmd.Parameters.Add(NewParameter("@EditFieldTypeIdentifier", info.Handler.TypeName, DbType.String)); cmd.Parameters.Add(NewParameter("@SectionName", info.SectionName, DbType.String)); cmd.Parameters.Add(NewParameter("@FieldName", info.FieldName, DbType.String)); cmd.Parameters.Add(NewParameter("@Rank", info.Rank, DbType.Int64)); cmd.ExecuteNonQuery(); scope.Complete(); } } catch (Exception ex) { return(new Result("SQLiteContentDataProvider.StoreEditFieldInfo: " + ex.Message)); } finally { DatabaseManager.DatabaseEngine.ReleaseConnection(); } return(new Result()); }
public Dictionary <string, List <EditFieldInfo> > ListPageEditFieldsByFieldType(long pageRevisionID) { using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Suppress)) { using (SQLiteConnection conn = new SQLiteConnection(DatabaseManager.DatabaseEngine.ConnectionString)) { conn.Open(); SQLiteCommand cmd = new SQLiteCommand(Procedures["List EditFields For Page Revision"], conn); cmd.Parameters.Add(NewParameter("@PageRevisionID", pageRevisionID, DbType.Int64)); using (SQLiteDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection)) { // group all of the nodes according to type so that they can have their individual type's id list loaded Dictionary <string, List <EditFieldInfo> > map = new Dictionary <string, List <EditFieldInfo> >(); while (reader.Read()) { EditFieldInfo field = new EditFieldInfo(); if (!field.Read(reader)) { continue; } List <EditFieldInfo> list; if (!map.TryGetValue(field.Handler.TypeName, out list)) { list = new List <EditFieldInfo>(); map.Add(field.Handler.TypeName, list); } list.Add(field); } reader.Close(); return(map); } } } }
public Dictionary <string, List <EditFieldInfo> > ListPageEditFieldsByFieldType(List <long> pageRevisionIDs) { using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Suppress)) { using (SqlConnection conn = new SqlConnection(DatabaseManager.DatabaseEngine.ConnectionString)) { conn.Open(); StringBuilder ids = new StringBuilder(); foreach (long id in pageRevisionIDs) { ids.Append(","); ids.Append(id); } #warning change to stored procedure, not inline sql SqlCommand cmd = new SqlCommand("SELECT * FROM EditFieldInfo WHERE PageRevisionID IN (0" + ids + ") ORDER BY EditFieldTypeIdentifier", conn); using (SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection)) { // group all of the nodes according to type so that they can have their individual type's id list loaded Dictionary <string, List <EditFieldInfo> > map = new Dictionary <string, List <EditFieldInfo> >(); while (reader.Read()) { EditFieldInfo field = new EditFieldInfo(); if (!field.Read(reader)) { continue; } List <EditFieldInfo> list; if (!map.TryGetValue(field.Handler.TypeName, out list)) { list = new List <EditFieldInfo>(); map.Add(field.Handler.TypeName, list); } list.Add(field); } reader.Close(); return(map); } } } }
public Dictionary<string, List<EditFieldInfo>> ListPageEditFieldsByFieldType(long pageRevisionID) { using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Suppress)) { using (SQLiteConnection conn = new SQLiteConnection(DatabaseManager.DatabaseEngine.ConnectionString)) { conn.Open(); SQLiteCommand cmd = new SQLiteCommand(Procedures["List EditFields For Page Revision"], conn); cmd.Parameters.Add(NewParameter("@PageRevisionID", pageRevisionID, DbType.Int64)); using (SQLiteDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection)) { // group all of the nodes according to type so that they can have their individual type's id list loaded Dictionary<string, List<EditFieldInfo>> map = new Dictionary<string, List<EditFieldInfo>>(); while (reader.Read()) { EditFieldInfo field = new EditFieldInfo(); if (!field.Read(reader)) continue; List<EditFieldInfo> list; if (!map.TryGetValue(field.Handler.TypeName, out list)) { list = new List<EditFieldInfo>(); map.Add(field.Handler.TypeName, list); } list.Add(field); } reader.Close(); return map; } } } }
public Result StoreEditFieldInfo(long pageRevisionID, EditFieldInfo info) { try { using (TransactionScope scope = new TransactionScope()) { if (info.Data != null && info.DataID == 0) info.DataID = DatabaseManager.GetUniqueID(); SQLiteConnection connection = (SQLiteConnection)DatabaseManager.DatabaseEngine.GetConnection(); SQLiteCommand cmd = connection.CreateCommand(); cmd.CommandText = Procedures["Store EditFieldInfo"]; cmd.Connection = connection; cmd.Parameters.Add(NewParameter("@PageRevisionID", pageRevisionID, DbType.Int64)); cmd.Parameters.Add(NewParameter("@EditFieldID", info.DataID, DbType.Int64)); cmd.Parameters.Add(NewParameter("@EditFieldTypeIdentifier", info.Handler.TypeName, DbType.String)); cmd.Parameters.Add(NewParameter("@SectionName", info.SectionName, DbType.String)); cmd.Parameters.Add(NewParameter("@FieldName", info.FieldName, DbType.String)); cmd.Parameters.Add(NewParameter("@Rank", info.Rank, DbType.Int64)); cmd.ExecuteNonQuery(); scope.Complete(); } } catch (Exception ex) { return new Result("SQLiteContentDataProvider.StoreEditFieldInfo: " + ex.Message); } finally { DatabaseManager.DatabaseEngine.ReleaseConnection(); } return new Result(); }
public Dictionary<string, List<EditFieldInfo>> ListPageEditFieldsByFieldType(List<long> pageRevisionIDs) { using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Suppress)) { using (SQLiteConnection conn = new SQLiteConnection(DatabaseManager.DatabaseEngine.ConnectionString)) { conn.Open(); StringBuilder ids = new StringBuilder(); foreach (long id in pageRevisionIDs) { ids.Append(","); ids.Append(id); } SQLiteCommand cmd = new SQLiteCommand("SELECT * FROM EditFieldInfo WHERE PageRevisionID IN (0" + ids + ") ORDER BY EditFieldTypeIdentifier", conn); using (SQLiteDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection)) { // group all of the nodes according to type so that they can have their individual type's id list loaded Dictionary<string, List<EditFieldInfo>> map = new Dictionary<string, List<EditFieldInfo>>(); while (reader.Read()) { EditFieldInfo field = new EditFieldInfo(); if (!field.Read(reader)) continue; List<EditFieldInfo> list; if (!map.TryGetValue(field.Handler.TypeName, out list)) { list = new List<EditFieldInfo>(); map.Add(field.Handler.TypeName, list); } list.Add(field); } reader.Close(); return map; } } } }