static void UpdateDeviceInfo(Message msg, Device device) { if (!allowAllowAnonymous || msg.Device != null) { device.Connected = true; device.Number = msg.Device.DeviceNumber; Unity.UpdateDeviceState(msg.Device, device, false); } }
public static void UpdateDeviceState(DeviceInfo deviceinfo, Device device, bool disconnected) { if (device.Updated && !disconnected) { return; } try { if (string.IsNullOrEmpty(device.Number)) { return; } var service = ServiceFactory.GetService<IDeviceService>(); if (deviceinfo != null && deviceinfo.PkId == 0) { deviceinfo.RegisterIp = device.RemoteIP; service.Save_Info(deviceinfo); } var item = service.GetObjectByDeviceNumber_Connection(device.Number); if (item == null) { item = new DeviceConnection(); } item.CollectorName = CurrencyStore.Collector.Configration.CurrencyStoreSection.Instance.Name; item.ConnectTime = device.ConnectionDate; item.DisconnectTime = device.DisconnectionDate; item.UploadCount = device.Counter; item.DeviceIp = device.RemoteIP; item.DeviceNumber = device.Number; item.CollectorIp = device.LocalIP; item.ConnectionStatus = (byte)(device.Connected ? 1 : 2); service.Save_Connection(item); device.Updated = true; } catch (Exception ex) { logger.Error("更新连接状态错误.", ex); } }