public async Task UnlockAllWorkstationsAsync(string userEmail)
        {
            var state = await _appSettingsService.GetAlarmStateAsync();

            if (state != null && !state.IsAlarm)
            {
                return;
            }

            if (string.IsNullOrWhiteSpace(userEmail))
            {
                throw new ArgumentNullException(nameof(userEmail));
            }

            var alarmState = new AlarmState
            {
                IsAlarm   = false,
                AdminName = userEmail,
                Date      = DateTime.UtcNow
            };

            await _appSettingsService.SetAlarmStateAsync(alarmState);


            foreach (var workstationConnection in _workstationConnections)
            {
                await workstationConnection.Value.SetAlarmState(false);
            }
        }
Пример #2
0
        private async Task ValidateConnectionAsync()
        {
            // Check workstation approving
            var approved = await _workstationService.CheckIsApprovedAsync(GetWorkstationId());

            if (!approved)
            {
                throw new HideezException(HideezErrorCode.HesWorkstationNotApproved);
            }

            // Check alarm enabling
            var alarmState = await _appSettingsService.GetAlarmStateAsync();

            if (alarmState != null && alarmState.IsAlarm)
            {
                throw new HideezException(HideezErrorCode.HesAlarm);
            }
        }