Ejemplo n.º 1
0
        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);
        }