Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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();
        }