/// <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"); }
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); } } }
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); } } }