Esempio n. 1
0
    public CoinJoinHistoryItemViewModel(
        int orderIndex,
        TransactionSummary transactionSummary,
        WalletViewModel walletViewModel,
        Money balance,
        IObservable <Unit> updateTrigger,
        bool isSingleCoinJoinTransaction)
        : base(orderIndex, transactionSummary)
    {
        IsConfirmed                 = transactionSummary.IsConfirmed();
        Date                        = transactionSummary.DateTime.ToLocalTime();
        Balance                     = balance;
        IsCoinJoin                  = true;
        CoinJoinTransaction         = transactionSummary;
        IsSingleCoinJoinTransaction = isSingleCoinJoinTransaction;

        var amount = transactionSummary.Amount;

        if (amount < Money.Zero)
        {
            OutgoingAmount = amount * -1;
        }
        else
        {
            IncomingAmount = amount;
        }

        ShowDetailsCommand = ReactiveCommand.Create(() =>
                                                    RoutableViewModel.Navigate(NavigationTarget.DialogScreen).To(
                                                        new CoinJoinDetailsViewModel(this, updateTrigger)));

        DateString = $"{Date.ToLocalTime():MM/dd/yyyy HH:mm}";
    }
Esempio n. 2
0
    public TransactionHistoryItemViewModel(
        int orderIndex,
        TransactionSummary transactionSummary,
        WalletViewModel walletViewModel,
        Money balance,
        IObservable <Unit> updateTrigger)
        : base(orderIndex, transactionSummary)
    {
        Label         = transactionSummary.Label.Take(1).FirstOrDefault();
        FilteredLabel = transactionSummary.Label.Skip(1).ToList();
        IsConfirmed   = transactionSummary.IsConfirmed();
        Date          = transactionSummary.DateTime.ToLocalTime();
        Balance       = balance;

        var amount = transactionSummary.Amount;

        if (amount < Money.Zero)
        {
            OutgoingAmount = amount * -1;
        }
        else
        {
            IncomingAmount = amount;
        }

        ShowDetailsCommand = ReactiveCommand.Create(() =>
                                                    RoutableViewModel.Navigate(NavigationTarget.DialogScreen).To(
                                                        new TransactionDetailsViewModel(transactionSummary, walletViewModel.Wallet, updateTrigger)));

        DateString = $"{Date.ToLocalTime():MM/dd/yy HH:mm}";
    }
Esempio n. 3
0
        public HistoryItemViewModel(int orderIndex, TransactionSummary transactionSummary, WalletViewModel walletViewModel, Money balance, IObservable <Unit> updateTrigger)
        {
            TransactionSummary = transactionSummary;
            Date       = transactionSummary.DateTime.ToLocalTime();
            IsCoinJoin = transactionSummary.IsLikelyCoinJoinOutput;
            OrderIndex = orderIndex;
            Balance    = balance;
            var wallet = walletViewModel.Wallet;

            var confirmations = transactionSummary.Height.Type == HeightType.Chain ? (int)wallet.BitcoinStore.SmartHeaderChain.TipHeight - transactionSummary.Height.Value + 1 : 0;

            IsConfirmed = confirmations > 0;

            var amount = transactionSummary.Amount;

            if (amount < Money.Zero)
            {
                OutgoingAmount = amount * -1;
            }
            else
            {
                IncomingAmount = amount;
            }

            ShowDetailsCommand = ReactiveCommand.Create(() => RoutableViewModel.Navigate(NavigationTarget.DialogScreen).To(new TransactionDetailsViewModel(transactionSummary, wallet, updateTrigger)));
        }
    public CoinJoinsHistoryItemViewModel(int orderIndex, TransactionSummary firstItem)
        : base(orderIndex, firstItem)
    {
        CoinJoinTransactions = new List <TransactionSummary>();
        Label         = "Coinjoins";
        FilteredLabel = new List <string>();
        IsCoinJoin    = true;

        ShowDetailsCommand = ReactiveCommand.Create(() => RoutableViewModel.Navigate(NavigationTarget.DialogScreen).To(new CoinJoinDetailsViewModel(this)));

        Add(firstItem);
    }
Esempio n. 5
0
    public CoinJoinsHistoryItemViewModel(
        int orderIndex,
        TransactionSummary firstItem,
        WalletViewModel walletViewModel,
        IObservable <Unit> updateTrigger)
        : base(orderIndex, firstItem)
    {
        _walletViewModel = walletViewModel;
        _updateTrigger   = updateTrigger;

        CoinJoinTransactions = new List <TransactionSummary>();
        Label      = "Coinjoins";
        IsCoinJoin = true;

        ShowDetailsCommand = ReactiveCommand.Create(() => RoutableViewModel.Navigate(NavigationTarget.DialogScreen).To(new CoinJoinDetailsViewModel(this)));

        Add(firstItem);
    }
Esempio n. 6
0
    public TransactionHistoryItemViewModel(
        int orderIndex,
        TransactionSummary transactionSummary,
        WalletViewModel walletViewModel,
        Money balance,
        IObservable <Unit> updateTrigger)
        : base(orderIndex, transactionSummary)
    {
        Label       = transactionSummary.Label;
        IsConfirmed = transactionSummary.IsConfirmed();
        Date        = transactionSummary.DateTime.ToLocalTime();
        Balance     = balance;

        var amount = transactionSummary.Amount;

        if (amount < Money.Zero)
        {
            OutgoingAmount = amount * -1;
        }
        else
        {
            IncomingAmount = amount;
        }

        ShowDetailsCommand = ReactiveCommand.Create(() =>
                                                    RoutableViewModel.Navigate(NavigationTarget.DialogScreen).To(
                                                        new TransactionDetailsViewModel(transactionSummary, walletViewModel.Wallet, updateTrigger)));

        var speedUpTransactionCommandCanExecute = this.WhenAnyValue(x => x.IsConfirmed)
                                                  .Select(x => !x)
                                                  .ObserveOn(RxApp.MainThreadScheduler);

        SpeedUpTransactionCommand = ReactiveCommand.Create(
            () =>
        {
            // TODO: Show speed up transaction dialog.
        },
            speedUpTransactionCommandCanExecute);

        DateString = $"{Date.ToLocalTime():MM/dd/yyyy HH:mm}";
    }
        public HistoryItemViewModel(int orderIndex, TransactionSummary transactionSummary, WalletViewModel walletViewModel, Money balance, IObservable <Unit> updateTrigger)
        {
            TransactionSummary = transactionSummary;
            Date       = transactionSummary.DateTime.ToLocalTime();
            IsCoinJoin = transactionSummary.IsLikelyCoinJoinOutput;
            OrderIndex = orderIndex;
            Balance    = balance;

            var confirmations = transactionSummary.Height.Type == HeightType.Chain ? (int)Services.BitcoinStore.SmartHeaderChain.TipHeight - transactionSummary.Height.Value + 1 : 0;

            IsConfirmed = confirmations > 0;

            var amount = transactionSummary.Amount;

            if (amount < Money.Zero)
            {
                OutgoingAmount = amount * -1;
            }
            else
            {
                IncomingAmount = amount;
            }

            Label         = transactionSummary.Label.Take(1).ToList();
            FilteredLabel = transactionSummary.Label.Skip(1).ToList();

            ShowDetailsCommand = ReactiveCommand.Create(() => RoutableViewModel.Navigate(NavigationTarget.DialogScreen).To(new TransactionDetailsViewModel(transactionSummary, walletViewModel.Wallet, updateTrigger)));

            this.WhenAnyValue(x => x.IsFlashing)
            .Where(x => x)
            .Subscribe(async _ =>
            {
                await Task.Delay(1260);
                IsFlashing = false;
            });
        }