public bool MockTelemetry() { try { LocalFileService fileService = new LocalFileService(); var localTelemetry = fileService.GetLocalMockTelemetry(); return(true); } catch (Exception e) { return(false); } }
public async Task Execute(IJobExecutionContext context) { // Used to determine if we should notify all other bulbs, besides the latest that was received bool isNewActivityPresent = false; List <int> bulbIdsToSkipWhenNotifying = new List <int>(); List <BulbTelemetryDTO> latestTelemetryActivity = new List <BulbTelemetryDTO>(); List <int> teamsToNotify = new List <int>(); if (AppSettingsUtil.DebugUsingLocalTelemetryData) { LocalFileService localFileService = new LocalFileService(); latestTelemetryActivity = localFileService.GetLocalMockTelemetry(); } else { // Received new telemetry activity. latestTelemetryActivity = GetLatestTelemetryActivity(); } DeleteExpiredTelemetry(latestTelemetryActivity); foreach (var teleActivity in latestTelemetryActivity) { var newActivityFromTelemetry = new BulbActivity { BulbId = teleActivity.Telemetry.BrightBulbId, DeviceId = teleActivity.DeviceId, RegisteredOn = teleActivity.CreatedOn }; AddTeamToNotifyToList(teamsToNotify, newActivityFromTelemetry); } var latestDBActivities = DbService.GetBulbActivities(); isNewActivityPresent = AddNewActivitiesToDb(isNewActivityPresent, bulbIdsToSkipWhenNotifying, latestTelemetryActivity, latestDBActivities); var signalrContext = GlobalHost.ConnectionManager.GetHubContext <StatusUpdateHub>(); var expiredActivitites = DeleteExpiredActivities(latestDBActivities); if (expiredActivitites != null) { await signalrContext.Clients.All.receiveDataUpdate( JsonConvert.SerializeObject(latestDBActivities), JsonConvert.SerializeObject(expiredActivitites) ); } else { await signalrContext.Clients.All.receiveDataUpdate( JsonConvert.SerializeObject(latestDBActivities), JsonConvert.SerializeObject(null) ); } foreach (var teamId in teamsToNotify) { IotHubService.sendLightUpCommandToAllDevicesInTeam(teamId, bulbIdsToSkipWhenNotifying, isNewActivityPresent); } return; }