Esempio n. 1
0
        /// <summary>
        /// Register device as connected
        /// </summary>
        /// <param name="device">device to be updated</param>
        private void ConnectDevice(Devices device)
        {
            logger.Info("Registering enabled device as connected");
            //device.DeviceConnected = true;
            //db.Devices.Update(device);
            var dev = db.Devices.Attach(device);

            dev.Entity.DeviceConnected = true;

            var histdev = new HistoricDevices {
                Iddevice            = device.Iddevice,
                HistDeviceDate      = DateTime.Now,
                IddeviceAction      = 1,
                HistDeviceIpaddress = null,
                HistDeviceAux       = null
            };

            var lastHistoricDevice = db.HistoricDevices.LastOrDefault();

            if (lastHistoricDevice == default(HistoricDevices))
            {
                histdev.IdhistoricDevices = 1;
            }
            else
            {
                histdev.IdhistoricDevices = lastHistoricDevice.IdhistoricDevices + 1;
            }
            db.HistoricDevices.Add(histdev);

            try {
                db.SaveChanges();
            } catch (Exception ex) {
                logger.Trace(ex);
                logger.Error(ex, "Error registering device as connected");
            }
            logger.Info("Enabled device registered as connected");
        }
Esempio n. 2
0
        private static void DeviceCommError(Devices dev)
        {
            //registrar error per timeout d'interval de dispositiu
            var histdev = new HistoricDevices {
                IDDevice            = dev.IDDevice,
                HistDeviceDate      = DateTime.Now,
                IDDeviceAction      = 8,
                HistDeviceIPaddress = null,
                HistDeviceAux       = "Device interval timeout"
            };

            var lastHistoricDevice = db.HistoricDevices.LastOrDefault();

            if (lastHistoricDevice == default(HistoricDevices))
            {
                histdev.IDHistoricDevices = 1;
            }
            else
            {
                histdev.IDHistoricDevices = lastHistoricDevice.IDHistoricDevices + 1;
            }
            db.HistoricDevices.Add(histdev);

            try {
                db.SaveChanges();
            } catch (Exception ex) {
                Console.WriteLine(ex);
                return;
            }

            //registrar desconnexió de dispositiu si s'han registrat >= 3 timeouts
            var numtimeout = db.HistoricDevices.Count(
                d => d.IDDevice == dev.IDDevice && d.IDDeviceAction == 8 &&
                d.HistDeviceAux == "Device interval timeout");

            if (numtimeout >= 3)
            {
                dev.DeviceConnected = false;
                db.Devices.Attach(dev);
                db.Entry(dev).Property(c => c.DeviceConnected).IsModified = true;

                histdev = new HistoricDevices {
                    IDDevice            = dev.IDDevice,
                    HistDeviceDate      = DateTime.Now,
                    IDDeviceAction      = 2,
                    HistDeviceIPaddress = null,
                    HistDeviceAux       = "Device disconnection due to timeout error"
                };

                lastHistoricDevice = db.HistoricDevices.LastOrDefault();
                if (lastHistoricDevice == default(HistoricDevices))
                {
                    histdev.IDHistoricDevices = 1;
                }
                else
                {
                    histdev.IDHistoricDevices = lastHistoricDevice.IDHistoricDevices + 1;
                }
                db.HistoricDevices.Add(histdev);

                try {
                    db.SaveChanges();
                } catch (Exception ex) {
                    Console.WriteLine(ex);
                }
            }
        }
Esempio n. 3
0
        private static void DeviceCommError(Devices dev)
        {
            //registrar error per timeout d'interval de dispositiu
            var histdev = new HistoricDevices {
                IDDevice            = dev.IDDevice,
                HistDeviceDate      = DateTime.Now,
                IDDeviceAction      = 8,
                HistDeviceIPaddress = null,
                HistDeviceAux       = "Device interval timeout"
            };

            //Càlcul de nou id per a insercció en taula HistoricDevices en funció de l'ultim valor de clau primaria
            var lastHistoricDevice = db.HistoricDevices.OrderByDescending(d => d.IDHistoricDevices).FirstOrDefault();

            if (lastHistoricDevice == default(HistoricDevices))
            {
                histdev.IDHistoricDevices = 1;
            }
            else
            {
                histdev.IDHistoricDevices = lastHistoricDevice.IDHistoricDevices + 1;
            }
            db.HistoricDevices.Add(histdev);

            //registrar error de dispositiu a la base de dades
            try {
                db.SaveChanges();
            } catch (Exception ex) {
                Debug.WriteLine(ex);
                return;
            }

            //consulta de nombre d'errors registrats per al dispositiu
            var numtimeout = db.HistoricDevices.Count(
                d => d.IDDevice == dev.IDDevice && d.IDDeviceAction == 8 &&
                d.HistDeviceAux == "Device interval timeout");

            //registrar desconnexió de dispositiu si s'han registrat minim 3 timeouts
            if (numtimeout >= 3)
            {
                dev.DeviceConnected = false;
                db.Devices.Attach(dev);
                db.Entry(dev).Property(c => c.DeviceConnected).IsModified = true;

                //registrar desconnexió per acumulació de minim 3 timeouts d'interval de dispositiu
                histdev = new HistoricDevices {
                    IDDevice            = dev.IDDevice,
                    HistDeviceDate      = DateTime.Now,
                    IDDeviceAction      = 2,
                    HistDeviceIPaddress = null,
                    HistDeviceAux       = "Device disconnection due to timeout error"
                };

                //Càlcul de nou id per a insercció en taula HistoricDevices en funció de l'ultim valor de clau primaria
                lastHistoricDevice = db.HistoricDevices.OrderByDescending(d => d.IDHistoricDevices).FirstOrDefault();
                if (lastHistoricDevice == default(HistoricDevices))
                {
                    histdev.IDHistoricDevices = 1;
                }
                else
                {
                    histdev.IDHistoricDevices = lastHistoricDevice.IDHistoricDevices + 1;
                }
                db.HistoricDevices.Add(histdev);

                //registrar desconnexió de dispositiu a la base de dades
                try {
                    db.SaveChanges();
                } catch (Exception ex) {
                    Debug.WriteLine(ex);
                }
            }
        }