private void doWork() { string name = "入侵报警主机"; //资产名称的前缀 long deviceCode = Int32.Parse(textBox1.Text); //资产编号起始 int dataCount = Int32.Parse(AddNumtextBox.Text); //数据生成数量 string[] sArray = IpAddresstextBox.Text.Split('.'); int Port = Int32.Parse(PorttextBox.Text); int IPCount = Int32.Parse(sArray[3]);//ip尾号 AddAlmDevprogressBar.Maximum = dataCount; AddAlmDevprogressBar.Step = 1; for (int i = 0; i < dataCount;) { int left = dataCount - i; int count = left > AddDeviceHelper.ONCE_INSERT ? AddDeviceHelper.ONCE_INSERT : left; List <Device> devices = new List <Device>(); for (int j = 0; j < count; j++, i++) { AlarmDevice alarm = new AlarmDevice(); alarm.setIp(string.Format("{0}.{1}.{2}.{3}", sArray[0], sArray[1], sArray[2], IPCount++)); alarm.setPort(Port.ToString()); alarm.setDeviceCode(deviceCode++.ToString()); alarm.setDeviceName(name + i.ToString()); alarm.setSectorCount(4);//一个报警主机带4个子系统和4个防区 alarm.setSubSysCount(4); devices.Add(alarm); AddAlmDevprogressBar.Value += AddAlmDevprogressBar.Step;//让进度条增加一次 } AddDeviceHelper.multiExcute(LoginMysqlFm.getNewDbHelper(), devices); } MessageBox.Show("添加成功"); }
public void ResetAcknowledge(string acronym) { Device device = QueryDevice(acronym); AlarmState alarmState = DataContext.Table <AlarmState>().QueryRecordWhere("State = {0}", "Not Available"); if (device.ID > 0 && alarmState.ID > 0) { TableOperations <AlarmDevice> alarmDeviceTable = DataContext.Table <AlarmDevice>(); AlarmDevice alarmDevice = alarmDeviceTable.QueryRecordWhere("DeviceID = {0}", device.ID); if (alarmDevice.ID > 0) { alarmDevice.StateID = alarmState.ID; // 1234567890 alarmDevice.DisplayData = "ACK Reset"; alarmDeviceTable.UpdateRecord(alarmDevice); } } }
public object GetAlarmState(int id) { dynamic jAlarmState = new JObject(); AlarmDevice alarmDevice = DataContext.Table<AlarmDevice>().QueryRecordWhere("DeviceID = {0}", id); if ((object)alarmDevice != null) { AlarmState alarmState = DataContext.Table<AlarmState>().QueryRecordWhere("ID = {0}", alarmDevice.StateID); if ((object)alarmState != null) { jAlarmState.displayData = alarmDevice.DisplayData; jAlarmState.stateName = alarmState.State; jAlarmState.stateColor = alarmState.Color; } } return jAlarmState; }
public object GetAlarmState(int id) { dynamic state = new JObject(); AlarmDevice alarmDevice = DataContext.Table <AlarmDevice>().QueryRecordWhere("DeviceID = {0}", id); if (alarmDevice is null) { return(state); } AlarmState alarmState = DataContext.Table <AlarmState>().QueryRecordWhere("ID = {0}", alarmDevice.StateID); if (!(alarmState is null)) { state.displayData = alarmDevice.DisplayData; state.stateName = alarmState.State; state.stateColor = alarmState.Color; } return(state); }
public void SendEmail(string acronym) { Device device = QueryDevice(acronym); // Get Device State and other Information AlarmDevice alarmDevice = DataContext.Table <AlarmDevice>().QueryRecordWhere("DeviceID = {0}", device.ID); string stateName = "Unknown State"; string vendorName = "Unspecified"; string deviceType = "Unspecified"; string contactList = "None Defined"; string connectionString = "settings=none"; string parentAcronym = ""; decimal longitude = 0.0M, latitude = 0.0M; int framesPerSecond = 30; int? vendorDeviceID = device.VendorDeviceID; if (device.ParentID.HasValue) { int parentID = device.ParentID.Value; // If this is a concentrator child, get connection string of parent Device parentDevice = DataContext.Table <Device>().QueryRecordWhere("ID = {0}", parentID); if ((object)parentDevice != null) { parentAcronym = parentDevice.Acronym; string childConnectionString = connectionString; // Settings in child connection string are not common if (string.IsNullOrWhiteSpace(childConnectionString)) { childConnectionString = ""; } else { childConnectionString = string.Format("; childDevice={0}; {1}", acronym, childConnectionString); } connectionString = string.Format("parentDevice={0}; {1}{2}", parentDevice.Acronym, parentDevice.ConnectionString, childConnectionString); vendorDeviceID = vendorDeviceID ?? parentDevice.VendorDeviceID; } } if ((object)alarmDevice != null) { AlarmState alarmState = DataContext.Table <AlarmState>().QueryRecordWhere("ID = {0}", alarmDevice.StateID); if (!string.IsNullOrEmpty(alarmState?.State)) { stateName = alarmState.State; } } if (device.Longitude.HasValue) { longitude = device.Longitude.Value; } if (device.Latitude.HasValue) { latitude = device.Latitude.Value; } if (device.FramesPerSecond.HasValue) { framesPerSecond = device.FramesPerSecond.Value; } VendorDevice vendorDevice = DataContext.Table <VendorDevice>().QueryRecordWhere("ID = {0}", vendorDeviceID); if ((object)vendorDevice != null) { if (!string.IsNullOrEmpty(vendorDevice?.Name)) { deviceType = vendorDevice.Name; } Vendor vendor = DataContext.Table <Vendor>().QueryRecordWhere("ID = {0}", vendorDevice.VendorID); if (!string.IsNullOrEmpty(vendor?.Name)) { vendorName = vendor.Name; } } if (!String.IsNullOrEmpty(device.ContactList)) { contactList = device.ContactList; } if (!String.IsNullOrEmpty(device.ConnectionString)) { connectionString = device.ConnectionString; } // ready Email to be send. Load settings from ConfigFile Only string emailServer = Mail.DefaultSmtpServer; string emailSender = string.Format("{0}@{1}.local", Environment.UserName, Environment.UserDomainName); string emailRecipients = ""; ConfigurationFile config = ConfigurationFile.Current; CategorizedSettingsElementCollection settings = config.Settings["deviceStatusNotification"]; settings.Add("EmailServer", emailServer, "SMTP server to use for sending the email notifications."); settings.Add("EmailSender", emailSender, "Email address to be used for sending the email notifications."); settings.Add("EmailRecipients", emailRecipients, "Email addresses (comma or semicolon delimited) where the email notifications are to be sent."); emailServer = settings["EmailServer"].ValueAs(emailServer); emailSender = settings["EmailSender"].ValueAs(emailSender); emailRecipients = settings["EmailRecipients"].ValueAs(emailRecipients); if (string.IsNullOrEmpty(emailRecipients)) { throw new ArgumentNullException("EmailRecipients"); } Mail briefMessage = new Mail(emailRecipients, emailSender, emailServer); Mail detailedMessage = new Mail(emailSender, emailSender, emailServer); briefMessage.Subject = $"{acronym} {stateName}"; detailedMessage.Subject = $"{acronym} {stateName}"; detailedMessage.Body = $"{acronym} is in {stateName} state. Please issue a field ticket to investigate\r\n\r\n"; detailedMessage.Body += $"Device Acronym: {acronym}\r\n"; detailedMessage.Body += $"Device Name: {device?.Name}\r\n"; detailedMessage.Body += $"Make: {vendorName}\r\n"; detailedMessage.Body += $"Model: {deviceType}\r\n"; detailedMessage.Body += $"Latitude: {latitude}\r\n"; detailedMessage.Body += $"Longitude: {longitude}\r\n"; detailedMessage.Body += $"Frames per Second: {framesPerSecond}\r\n"; detailedMessage.Body += $"Contacts: {contactList}\r\n"; detailedMessage.Body += $"Connection String:\r\n"; detailedMessage.Body += $"\t{String.Join("\r\n\t", connectionString.Split(';').Select(s => s.Trim()))}\r\n\r\n"; detailedMessage.Body += $"Last collected Statistics:\r\n"; detailedMessage.Body += GenerateStatsTable(acronym, parentAcronym); foreach (string recipient in emailRecipients.Replace(" ", "").Split(';', ',')) { string[] addressParts = recipient.Split(':'); if (addressParts.Length > 1) { if (string.Compare(addressParts[1], "sms", true) == 0) { // A brief message is to be sent. briefMessage.ToRecipients = addressParts[0]; briefMessage.Send(); } } else { // A detailed message is to be sent. detailedMessage.ToRecipients = recipient; detailedMessage.Send(); } } }