public async Task <IActionResult> Post([FromBody] BaseComponentViewModel heartbeatViewModel) { try { var id = Guid.Parse(heartbeatViewModel.ModuleId); var heartbeat = new Heartbeat { ModuleId = id, State = heartbeatViewModel.State }; await HeartbeatRepository.CreateHeartbeat(heartbeat); await ModuleRepository.UpdateModuleHeartbeat (new Module(id, heartbeatViewModel.State)); return(Ok(heartbeat)); } catch (Exception ex) { Logger.LogError(ex.Message); return(BadRequest(new ErrorResponse(ex))); } }
private void WriteLog(PulseEventSource pulseEventSource, HeartbeatStatus status, string logText) { if (HeartbeatConfiguration.Current.Enabled) { var log = new HeartbeatLog(); log.LogDate = DateTime.Now; log.Status = status; log.HeartbeatInstanceId = HeartbeatInstanceId; log.ComponentTypeName = _intiatingTypeName; log.LogText = logText; if (pulseEventSource != PulseEventSource.Count) { log.PulseTimerInterval = PulseTimerInterval; log.TimerPulseNumber = _timerPulseNumber; log.TimerMilliseconds = _timerMilliseconds; } if (pulseEventSource != PulseEventSource.Timer) { log.PulseCountInterval = PulseCountInterval; log.CountPulseNumber = _countPulseNumber; log.CountNumber = _count; } HeartbeatRepository.WriteHeartbeatLog(log); } }
/// <summary> /// Static constructor - initialises data context /// </summary> static Heartbeat() { if (HeartbeatConfiguration.Current.Enabled) { //run a dummy query to warm up EF: HeartbeatRepository.GetHeartbeatLogs(new Guid()); } }