public void ImportAlarmTableCSV(string csv) { string[] csvRows = csv.Split('\n'); string[] tableFields = csvRows[0].Split(','); TableOperations <AlarmRangeLimit> table = DataContext.Table <AlarmRangeLimit>(); if (table.GetFieldNames() == tableFields) { for (int i = 1; i < csvRows.Length; ++i) { string[] row = csvRows[i].Split(','); AlarmRangeLimit newRecord = DataContext.Connection.ExecuteScalar <AlarmRangeLimit>("Select * FROM AlarmRangeLimit WHERE ID ={0}", row[0]); newRecord.Severity = int.Parse(row[4]); newRecord.High = float.Parse(row[5]); newRecord.Low = float.Parse(row[6]); newRecord.RangeInclusive = int.Parse(row[7]); newRecord.PerUnit = int.Parse(row[8]); newRecord.Enabled = int.Parse(row[9]); newRecord.IsDefault = bool.Parse(row[17]); table.UpdateRecord(newRecord); } } }
/// <summary> /// Gets the field names for the MetersWithAlarmLimits, ChannelsWithAlarmLimits, and HourOfWeekAlarmLimits tables /// and concatenates them together. /// </summary> /// <returns></returns> private string GetHourOfWeekLimitCSVHeaders() { string csv = ""; string[] meterHeaders; string[] channelHeaders; string[] alarmHeaders; using (var connection = new AdoDataConnection("systemSettings")) { TableOperations <MetersWithHourlyLimits> meterTable = new TableOperations <MetersWithHourlyLimits>(connection); TableOperations <ChannelsWithHourlyLimits> channelTable = new TableOperations <ChannelsWithHourlyLimits>(connection); TableOperations <HourOfWeekLimit> alarmTable = new TableOperations <HourOfWeekLimit>(connection); meterHeaders = meterTable.GetFieldNames(); channelHeaders = channelTable.GetFieldNames(); alarmHeaders = alarmTable.GetFieldNames(); } for (int i = 0; i < meterHeaders.Length; i++) { meterHeaders[i] = "Meter" + meterHeaders[i]; } for (int i = 0; i < channelHeaders.Length; i++) { channelHeaders[i] = "Channel" + channelHeaders[i]; } for (int i = 0; i < alarmHeaders.Length; i++) { alarmHeaders[i] = "Alarm" + alarmHeaders[i]; } string[] headers = meterHeaders.Concat(channelHeaders).ToArray().Concat(alarmHeaders).ToArray(); if (headers.Length > 0) { csv += "[" + headers[0] + "]"; } for (int i = 1; i < headers.Length; i++) { csv += ",[" + headers[i] + "]"; } return(csv); }
/// <summary> /// Gets the field names for the MetersWithAlarmLimits, ChannelsWithAlarmLimits, and HourOfWeekAlarmLimits tables /// and concatenates them together. /// </summary> /// <returns></returns> private string GetCSVHeaders(string callingFrom) { string csv = ""; List <string> meterHeaders = new List <string>(); List <string> channelHeaders = new List <string>(); List <string> alarmHeaders = new List <string>(); using (var connection = new AdoDataConnection("systemSettings")) { if (callingFrom == "Alarms" || callingFrom == "Channels" || callingFrom == "Meters") { TableOperations <MetersWithHourlyLimits> meterTable = new TableOperations <MetersWithHourlyLimits>(connection); TableOperations <ChannelsWithHourlyLimits> channelTable = new TableOperations <ChannelsWithHourlyLimits>(connection); TableOperations <HourOfWeekLimit> alarmTable = new TableOperations <HourOfWeekLimit>(connection); meterHeaders = meterTable.GetFieldNames().Select(x => "Meter" + x).ToList(); channelHeaders = channelTable.GetFieldNames().Select(x => "Channel" + x).ToList(); alarmHeaders = alarmTable.GetFieldNames().Select(x => "Alarm" + x).ToList(); } else if (callingFrom == "MetersWithNormalLimits" || callingFrom == "ChannelsWithNormalLimits") { TableOperations <MetersWithNormalLimits> meterTable = new TableOperations <MetersWithNormalLimits>(connection); TableOperations <ChannelsWithNormalLimits> channelTable = new TableOperations <ChannelsWithNormalLimits>(connection); meterHeaders = meterTable.GetFieldNames().Select(x => "Meter" + x).ToList(); channelHeaders = channelTable.GetFieldNames().Select(x => "Channel" + x).ToList(); } } string[] headers = meterHeaders.Concat(channelHeaders).ToArray().Concat(alarmHeaders).ToArray(); if (headers.Length > 0) { csv += "[" + headers[0] + "]"; } for (int i = 1; i < headers.Length; i++) { csv += ",[" + headers[i] + "]"; } return(csv); }