void HandleMessage(MdvrMessageBase message, DeviceClient client) { var db = new LisconDbEntities(); client.Runtime.GpsTime = message.MessageTime; client.Runtime.Latitude = message.LocationAndStatus.Location.Latitude; client.Runtime.Longitude = message.LocationAndStatus.Location.Longitude; if (message is V101Message) { HandleV101Message((V101Message)message, client, db); } else if (message is V114Message) { HandleV114Message((V114Message)message, client, db); } else if (message is V201Message) { HandleV201Message((V201Message)message); } else if (message is V251Message) { HandleV251Message((V251Message)message); } DeviceRuntimeBL.Update(client.Runtime, db); ClientRuntimeUpdated?.Invoke(); }
void HandleV101Message(V101Message message, DeviceClient client, LisconDbEntities db) { var device = DeviceBL.TryGet(message.DevIDNO, db); if (device == null) { DeviceBL.Register(message.DevIDNO, client.Runtime, db); } SendResponse(message, MdvrResponseTypes.Auto, "1"); SendAlarmServerConfig(client.DevIDNO, "", 6602, (int)ConnectionTypes.Udp); }
internal static void Create(DeviceRuntime runtime, LisconDbEntities db) { // Todo: Check Editability runtime.CreateUserID = -1; runtime.CreateTime = DateTime.UtcNow; runtime.UpdateUserID = -1; runtime.UpdateTime = DateTime.UtcNow; db.DeviceRuntime.Add(runtime); db.SaveChanges(); }
static void HandleV114Message(V114Message message, DeviceClient client, LisconDbEntities db) { var log = new DeviceLog() { DevIDNO = client.DevIDNO, LogType = (int)LogTypes.Gps, LogTime = client.Runtime.GpsTime, Latitude = client.Runtime.Latitude, Longitude = client.Runtime.Longitude }; DeviceLogBL.Add(log, db); }
public static void Update(DeviceRuntime runtime, LisconDbEntities db) { var existingRuntime = db.DeviceRuntime.Single(q => q.DevIDNO == runtime.DevIDNO); existingRuntime.GpsTime = runtime.GpsTime; existingRuntime.Latitude = runtime.Latitude; existingRuntime.Longitude = runtime.Longitude; existingRuntime.Altitude = runtime.Altitude; existingRuntime.Speed = runtime.Speed; existingRuntime.Course = runtime.Course; db.SaveChanges(); }
public static void Register(string devIDNO, DeviceRuntime runtime, LisconDbEntities db) { using (var ts = new TransactionScope()) { var device = new Device(); device.IDNO = devIDNO; device.Plate = string.Empty; device.CreateUserID = -1; device.CreateTime = DateTime.UtcNow; device.UpdateUserID = -1; device.UpdateTime = DateTime.UtcNow; db.Device.Add(device); db.SaveChanges(); DeviceRuntimeBL.Create(runtime, db); ts.Complete(); } }
public static Device TryGet(string devIDNO, LisconDbEntities db) { return(db.Device.SingleOrDefault(q => q.IDNO == devIDNO)); }
public static void Add(DeviceLog devLog, LisconDbEntities db) { db.DeviceLog.Add(devLog); db.SaveChanges(); }