public MissingMiniPrivateKeyViewModel()
        {
            // Don't move this line, service must be instantiated here
            InputService inServ = new InputService();

            miniService = new MiniKeyService(Result);

            IObservable <bool> isFindEnabled = this.WhenAnyValue(
                x => x.Input,
                x => x.ExtraInput,
                x => x.MissingChar,
                x => x.Result.CurrentState, (miniKey, addr, c, state) =>
                !string.IsNullOrEmpty(miniKey) &&
                !string.IsNullOrEmpty(addr) &&
                inServ.IsMissingCharValid(c) &&
                state != State.Working);

            FindCommand = ReactiveCommand.Create(Find, isFindEnabled);

            HasExample = true;
            IObservable <bool> isExampleVisible = this.WhenAnyValue(
                x => x.Result.CurrentState,
                (state) => state != State.Working);

            ExampleCommand = ReactiveCommand.Create(Example, isExampleVisible);

            ExtraInputTypeList     = ListHelper.GetEnumDescItems(InputType.PrivateKey).ToArray();
            SelectedExtraInputType = ExtraInputTypeList.First();
        }
        public MissingMiniPrivateKeyViewModel()
        {
            // Don't move this line, service must be instantiated here
            InputService inServ = new InputService();

            miniService = new MiniKeyService(Result);

            IObservable <bool> isFindEnabled = this.WhenAnyValue(
                x => x.Input,
                x => x.ExtraInput,
                x => x.MissingChar,
                x => x.Result.CurrentState, (miniKey, addr, c, state) =>
                !string.IsNullOrEmpty(miniKey) &&
                !string.IsNullOrEmpty(addr) &&
                inServ.IsMissingCharValid(c) &&
                state != Models.State.Working);

            FindCommand = ReactiveCommand.Create(Find, isFindEnabled);
        }