public SnmpVersionTwo(SnmpV2Packet pkt, EndPoint inep, List <MibTreeInformation> mibTreeInformation, List <TowerDevices> towerDevices, List <AlarmLogStatus> alarmLog) { var context = GlobalHost.ConnectionManager.GetHubContext <HubMessage>(); foreach (Vb v in pkt.Pdu.VbList) { Trap trap = new Trap(); string IP = inep.ToString(); var leng = IP.IndexOf(":"); trap.IpAddres = IP.Remove(leng, (IP.Length - leng)); trap.CurrentOID = pkt.Pdu.TrapObjectID.ToString(); trap.ReturnedOID = v.Oid.ToString(); trap.Value = v.Value.ToString(); trap.dateTimeTrap = DateTime.Now.ToString(); var tDevice = towerDevices.Where(t => t.IP == trap.IpAddres).FirstOrDefault(); alarmStatusDescription = alarmstatus.AlarmColorDefines(v.Value.ToString(), trap.CurrentOID, trap.ReturnedOID, alarmLog, tDevice); trap.AlarmStatus = alarmStatusDescription.AlarmStatusColor; trap.AlarmDescription = alarmStatusDescription.AlarmDescription; if (tDevice == null) { trap.Countrie = "Unknown"; trap.States = "Unknown"; trap.City = "Unknown"; trap.DeviceName = "Unknown"; trap.TowerName = "Unknown"; trap.Description = "Unknown"; } else { trap.Countrie = tDevice.CountrieName; trap.States = tDevice.StateName; trap.City = tDevice.CityName; trap.DeviceName = tDevice.DeviceName; trap.TowerName = tDevice.TowerName; string oid = pkt.Pdu.TrapObjectID.ToString(); var OidMibdescription = mibTreeInformation.Where(o => o.OID == oid).FirstOrDefault(); if (OidMibdescription == null) { oid = oid.Remove(oid.Length - 1); oid = oid.Remove(oid.Length - 1); OidMibdescription = mibTreeInformation.Where(o => o.OID == oid).FirstOrDefault(); } if (OidMibdescription == null) { oid = oid.Remove(oid.Length - 1); oid = oid.Remove(oid.Length - 1); OidMibdescription = mibTreeInformation.Where(o => o.OID == oid).FirstOrDefault(); if (OidMibdescription != null) { trap.Description = OidMibdescription.Description; } else { trap.Description = "Unknown"; trap.OIDName = "Unknown"; } trap.OIDName = OidMibdescription.Name; } else { trap.Description = OidMibdescription.Description; trap.OIDName = OidMibdescription.Name; } if (trap.Description == "") { trap.Description = "Unknown"; } } context.Clients.All.onHitRecorded(trap); db.Traps.Add(trap); db.SaveChanges(); } }
public AlarmStatusDescription AlarmColorDefines(string value, string CurrentOID, string ReturnedOID, List <AlarmLogStatus> alarmLog, TowerDevices tDevice) { bool status = false; AlarmStatusDescription alarmStatusDescription = new AlarmStatusDescription(); using (IDbConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["DeviceConnection"].ConnectionString)) { alarmLog.ForEach(item => { MapViewInformation mapinformation = new MapViewInformation(); status = Regex.IsMatch(value, item.AlarmText); if (status == true && item.CurrentOidText == CurrentOID && item.ReturnOidText == ReturnedOID) { alarmStatusDescription.AlarmStatusColor = item.AlarmStatus; alarmStatusDescription.AlarmDescription = item.AlarmDescription; var towerID = Convert.ToInt32(tDevice.TowerID.Substring(6, tDevice.TowerID.Length - 6)); var context = GlobalHost.ConnectionManager.GetHubContext <HubMessage>(); mapinformation.Value = ""; mapinformation.TowerID = towerID; mapinformation.TowerLine = mapline.LinesCordinate(towerID); var cord = connection.Query <TowerGps>($"select * from TowerGps where TowerID='{towerID}'").FirstOrDefault(); mapinformation.StartLattitube = Double.Parse(cord.Lattitube.Remove(cord.Lattitube.Length - 2), CultureInfo.InvariantCulture); mapinformation.StartLongitube = Double.Parse(cord.Longitube.Remove(cord.Longitube.Length - 2), CultureInfo.InvariantCulture); mapinformation.Name = cord.TowerName; if (item.AlarmStatus == "green") { mapinformation.MapColor = "rgb(51, 51, 51)"; mapinformation.LineColor = "#006699"; } else { mapinformation.MapColor = item.AlarmStatus; mapinformation.LineColor = item.AlarmStatus; } if (item.AlarmStatus == "yellow") { mapinformation.TextColor = "black"; } else { mapinformation.TextColor = "white"; } mapinformation.GetTrap = "trap"; context.Clients.All.onHitRecorded(mapinformation); } }); } if (alarmStatusDescription.AlarmStatusColor == null || alarmStatusDescription.AlarmStatusColor == "") { alarmStatusDescription.AlarmStatusColor = "white"; alarmStatusDescription.AlarmDescription = " "; } return(alarmStatusDescription); }