public async Task <ActionResult <MonitorRoom> > DeassignMonitor([FromQuery] MonitorKey monitorKey) { await _monitorStore.DeassignMonitorAsync(monitorKey); var result = await _monitorStore.FindMonitorUnassignedDetailsAsync(monitorKey); return(Ok(result)); }
public async Task <ActionResult <MonitorRoom> > AssignMonitor([FromQuery] MonitorKey monitorKey, [FromBody] MonitorRoom monitorRoom) { monitorRoom.SetMonitorKey(monitorKey); await _monitorStore.AssignMonitorAsync(monitorRoom); MonitorRoom result = await _monitorStore.FindMonitorRoomDetailsAsync(monitorKey); return(Ok(result)); }
public async Task DeassignMonitorAsync(MonitorKey monitorKey) { using SqlConnection connection = new SqlConnection(_connectionString); await connection.OpenAsync(); await connection.ExecuteAsync( "Monitor_Deassign_tr", monitorKey, commandType : CommandType.StoredProcedure); }
//Try to get counter without lock private Counter GetOrCreateCounter(MonitorKey key) { Counter counter; if (!_monitors.TryGetValue(key, out counter)) { counter = SafeCreateCounter(key); } return(counter); }
private Counter SafeCreateCounter(MonitorKey key) { Counter counter; lock (_createCounterLock) { if (!_monitors.TryGetValue(key, out counter)) { counter = new Counter(key); _monitors.Add(key, counter); } } return(counter); }
public async Task <MonitorUnassigned> FindMonitorUnassignedDetailsAsync(MonitorKey monitorKey) { using SqlConnection connection = new SqlConnection(_connectionString); await connection.OpenAsync(); var result = await connection.QuerySingleOrDefaultAsync <MonitorUnassigned>( @"SELECT * FROM MonitorUnassigned_V WHERE HotelChain = @HotelChain AND CountryCode = @CountryCode AND Town = @Town AND Suburb = @Suburb AND MACAddress = @MACAddress", monitorKey ); return(result); }
/// <summary> /// 报警通知回调 /// </summary> /// <param name="alarm"></param> void MessageCore_OnAlarmReceived(Alarm alarm) { string msg = "DeviceID:" + alarm.DeviceID + "\r\nSN:" + alarm.SN + "\r\nCmdType:" + alarm.CmdType + "\r\nAlarmPriority:" + alarm.AlarmPriority + "\r\nAlarmMethod:" + alarm.AlarmMethod + "\r\nAlarmTime:" + alarm.AlarmTime + "\r\nAlarmDescription:" + alarm.AlarmDescription; Invoke(new Action(() => { MessageBox.Show(msg); var key = new MonitorKey() { CmdType = CommandType.Play, DeviceID = alarm.DeviceID }; _messageCore.NodeMonitorService[key.ToString()].AlarmResponse(alarm); //txtMsg.Text = msg; })); }
public PersistenceStopWatch(IMonitoring monitoring, MonitorKey key) { _monitoring = monitoring; _key = key; }
public async Task <IActionResult> HandleMonitorRecord([FromBody] MonitorRecord monitorRecord) { HotelKey hotelKey = ParseHotelKeyFromClaims(User); MonitorKey monitorKey = new MonitorKey { HotelChain = hotelKey.HotelChain, CountryCode = hotelKey.CountryCode, Town = hotelKey.Town, Suburb = hotelKey.Suburb, MACAddress = monitorRecord.MACAddress }; monitorRecord.Logs.ForEach(async log => { try { await _monitorStore.AddMonitorLogAsync( hotelKey, monitorRecord.MACAddress, log); } catch (SqlException ex) { StringBuilder errorMessages = new StringBuilder(); for (int i = 0; i < ex.Errors.Count; i++) { errorMessages.Append("Index #" + i + "\n" + "Message: " + ex.Errors[i].Message + "\n" + "LineNumber: " + ex.Errors[i].LineNumber + "\n" + "Source: " + ex.Errors[i].Source + "\n" + "Procedure: " + ex.Errors[i].Procedure + "\n"); } Console.WriteLine(errorMessages.ToString()); } }); MonitorRoom monitorRoom = await _monitorStore.FindMonitorRoomDetailsAsync(monitorKey); if (monitorRoom != null) { monitorRecord.Readings.ForEach(async reading => { try { await _monitorStore.AddMonitorReadingAsync( monitorRoom, reading); } catch (SqlException ex) { StringBuilder errorMessages = new StringBuilder(); for (int i = 0; i < ex.Errors.Count; i++) { errorMessages.Append("Index #" + i + "\n" + "Message: " + ex.Errors[i].Message + "\n" + "LineNumber: " + ex.Errors[i].LineNumber + "\n" + "Source: " + ex.Errors[i].Source + "\n" + "Procedure: " + ex.Errors[i].Procedure + "\n"); } Console.WriteLine(errorMessages.ToString()); } }); } return(StatusCode(StatusCodes.Status201Created)); }
private StopWatch Create(MonitorKey key) { return(new PersistenceStopWatch(this, key)); }
public void Inc(MonitorKey key) { UpdateCounter(key, 1.0); }
public void Set(MonitorKey key, double value) { SetCounter(key, value); }
public void Add(MonitorKey key, double value) { UpdateCounter(key, value); }
public StopWatch Start(MonitorKey key) { return(Create(key).Start()); }
private void SetCounter(MonitorKey key, double value) { Counter counter = GetOrCreateCounter(key); counter.Set(value); }
private void UpdateCounter(MonitorKey key, double value) { Counter counter = GetOrCreateCounter(key); counter.Update(value); }