Example #1
0
        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();
            }
        }
Example #2
0
        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);
        }