public static VariableData Get(DataManagement.Configuration config, string variableName, string tablePrefix = "") { VariableData Result = null; DataRow row = Row.Get(config, tablePrefix + Names.Variables, "variable", variableName); if (row != null) { Result = new VariableData(); if (row["variable"] != null) { Result.Variable = row["variable"].ToString(); } if (row["value"] != null) { Result.Value = row["value"].ToString(); } if (row["timestamp"] != null) { DateTime timestamp = DateTime.MinValue; DateTime.TryParse(row["timestamp"].ToString(), out timestamp); if (timestamp > DateTime.MinValue) { Result.Timestamp = timestamp; } } } return(Result); }
public static void CreateTable(DataManagement.Configuration config, string tablePrefix = "") { var columns = new ColumnDefinition[] { new ColumnDefinition("Variable", DataType.LargeText), new ColumnDefinition("Value", DataType.LargeText), new ColumnDefinition("Timestamp", DataType.DateTime) }; Table.Create(config, tablePrefix + Names.Variables, columns, primaryKey); }
public static void Update(DataManagement.Configuration config, VariableData[] infos, string tablePrefix = "") { if (infos.Length > 0) { List <string> columns = new List <string>(); columns.Add("Variable"); columns.Add("Value"); columns.Add("Timestamp"); var tableValues = new List <List <object> >(); foreach (var info in infos) { var match = Data.Find(x => x.Variable == info.Variable && x.UniqueId == info.UniqueId); if (match == null) { Data.Add(info); match = info; } if (match.Value != info.Value) { match.Value = info.Value; var rowValues = new List <object>(); rowValues.Add(info.Variable); rowValues.Add(info.Value); rowValues.Add(info.Timestamp); tableValues.Add(rowValues); } } if (tableValues.Count > 0) { string query = Row.CreateInsertQuery(tablePrefix + Names.Variables, columns.ToArray(), tableValues, true); //TrakHound.Servers.Processor.Server.DatabaseQueue.AddToQueue(query); } } }