예제 #1
0
        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);
        }
예제 #2
0
        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");
            }
        }