Example #1
0
        private async Task InitializeDevices()
        {
            try
            {
                var msg = "Start scan...";
                _log.Log(msg);
                Footer = msg;

                var devices = await _service.GetDevices();

                var message = $"Initialize {devices.Count} devices";
                Footer = message;
                _log.Log(message);

                foreach (var device in devices)
                {
                    msg    = $"{device.DeviceInfo.DeviceAddress} found";
                    Footer = msg;
                    _log.Log(msg);
                }

                ControlsEnabled = true;
                Devices         = new ObservableCollection <Device>(devices);

                Count = Devices.Count;

                message = $"Watched devices count: {WatchedDevices.Count}";
                _log.Log(message);
                Footer = message;

                var outOfRange = WatchedDevices.Except(Devices).ToList();

                message = $"Watched devices count after filtering: {outOfRange.Count}";
                _log.Log(message);
                Footer = message;

                foreach (var device in outOfRange)
                {
                    _log.Log($"Device {device.DeviceName} is out of range");
                }

                if (outOfRange.Count > 0)
                {
                    _log.Log("Lock station");
                    _user32.LockWorkStation();
                }
            }
            catch (PlatformNotSupportedException ex)
            {
                Footer          = "Bluetooth is not supported";
                ControlsEnabled = false;

                if (!_isWarningShown)
                {
                    MessageBox.Show(ex.Message, "Error");
                    _isWarningShown = true;
                }
            }
        }
Example #2
0
 private void ExecuteRemoveWatch()
 {
     WatchedDevices.Clear();
 }