Exemple #1
0
        public bool MockTelemetry()
        {
            try
            {
                LocalFileService fileService = new LocalFileService();

                var localTelemetry = fileService.GetLocalMockTelemetry();

                return(true);
            }
            catch (Exception e)
            {
                return(false);
            }
        }
Exemple #2
0
        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;
        }