Exemplo n.º 1
0
    public WalletNamePageViewModel(WalletCreationOption creationOption, string?importFilePath = null)
    {
        _importFilePath = importFilePath;

        EnableBack = true;

        var canExecute = this.WhenAnyValue(x => x.WalletName)
                         .ObserveOn(RxApp.MainThreadScheduler)
                         .Select(x => !string.IsNullOrWhiteSpace(x) && !Validations.Any);

        NextCommand = ReactiveCommand.CreateFromTask(async() => await OnNextAsync(WalletName, creationOption), canExecute);

        this.ValidateProperty(x => x.WalletName, ValidateWalletName);
    }
Exemplo n.º 2
0
    private async Task OnNextAsync(string walletName, WalletCreationOption creationOption)
    {
        switch (creationOption)
        {
        case WalletCreationOption.AddNewWallet:
            await CreatePasswordAsync(walletName);

            break;

        case WalletCreationOption.ConnectToHardwareWallet:
            Navigate().To(new ConnectHardwareWalletViewModel(walletName));
            break;

        case WalletCreationOption.RecoverWallet:
            Navigate().To(new RecoverWalletViewModel(walletName));
            break;

        case WalletCreationOption.ImportWallet when _importFilePath is { }:
            await ImportWalletAsync(walletName, _importFilePath);

            break;