public SettingsPageViewModel( ISettingsService settingsService, IUserService userService, IQrScannerService qrScannerService, IMainView mainViewService, ILoggerService loggerService) { _settingsService = settingsService; _userService = userService; _qrScannerService = qrScannerService; _mainViewService = mainViewService; _loggerService = loggerService; var canSave = this.WhenAnyValue(x => x.Host, x => x.ApiKey) .Select((arg) => !string.IsNullOrWhiteSpace(arg.Item1) && !string.IsNullOrWhiteSpace(arg.Item2)); var canScan = this.WhenAnyValue(x => x.Host, x => x.ApiKey) .Select((arg) => string.IsNullOrWhiteSpace(arg.Item1) || string.IsNullOrWhiteSpace(arg.Item2)); SaveCommand = ReactiveCommand.Create(SaveSettings, canExecute: canSave); ScanQrCodeCommand = ReactiveCommand.Create(ScanQrHandler); }
async Task GetSessId() { IQrScannerService qrScanner = DependencyService.Get <IQrScannerService>(); string sessId = await qrScanner.readCode(); if (await ValidateSessId(sessId)) { contextService.Context.CurrentSession = new Session { SessId = new Guid(sessId) }; StartShell(); } else { Debug.WriteLine("Could not scan qr code"); } }