public bool Update(int deviceId, EnumDeviceStatus[] deviceStatuses, string Station = null) { try { // validate if (!DeviceIdExist(deviceId)) { throw new Trinity.Common.ExceptionArgs("DeviceID is not valid"); } // local db // delete old statuses string station = Lib.Station; var oldRows = _localUnitOfWork.DataContext.ApplicationDevice_Status.Where(item => item.DeviceID == deviceId && item.Station.Equals(station)); _localUnitOfWork.DataContext.ApplicationDevice_Status.RemoveRange(oldRows); // insert new statuses if (deviceStatuses != null && deviceStatuses.Count() > 0) { // create new status entites ApplicationDevice_Status deviceStatus; foreach (var status in deviceStatuses) { deviceStatus = new ApplicationDevice_Status(); deviceStatus.Station = station; deviceStatus.DeviceID = deviceId; deviceStatus.ID = Guid.NewGuid(); deviceStatus.StatusCode = (int)status; deviceStatus.StatusMessage = CommonUtil.GetDeviceStatusText(status); // insert new statuses _localUnitOfWork.DataContext.ApplicationDevice_Status.Add(deviceStatus); } } // savechanges if (_localUnitOfWork.DataContext.SaveChanges() < 0) { throw new Trinity.Common.ExceptionArgs("Save data to local database failed."); } // Send Noti server //Lib.SignalR.DeviceStatusUpdate(deviceId, deviceStatuses); return(true); } catch (Exception ex) { Debug.WriteLine("DAL_DeviceStatus.Update exception: " + ex.ToString()); return(false); } }
public void AppStatusChanged(string station, string status, string errorMesssage) { var oldRows = _localUnitOfWork.DataContext.ApplicationDevice_Status.Where(item => item.Station.Equals(station)); _localUnitOfWork.DataContext.ApplicationDevice_Status.RemoveRange(oldRows); var dataInsert = new ApplicationDevice_Status() { ID = Guid.NewGuid(), Station = station, StatusCode = (int)(status == Enum_AppStatusChanged.OK ? EnumDeviceStatus.Connected : status == Enum_AppStatusChanged.Error?EnumDeviceStatus.Disconnected:EnumDeviceStatus.Busy), }; if (!string.IsNullOrEmpty(errorMesssage)) { dataInsert.StatusMessage = errorMesssage; } _localUnitOfWork.DataContext.ApplicationDevice_Status.Add(dataInsert); _localUnitOfWork.DataContext.SaveChanges(); }