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}"; }
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}"; }
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); }
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); }
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; }); }