public PrivacySuggestionControlViewModel(decimal originalAmount, BuildTransactionResult transactionResult, PrivacyOptimisationLevel optimisationLevel, decimal fiatExchangeRate, params string[] benefits) { TransactionResult = transactionResult; _optimisationLevel = optimisationLevel; _benefits = benefits; decimal total = transactionResult.CalculateDestinationAmount().ToDecimal(MoneyUnit.BTC); var fiatTotal = total * fiatExchangeRate; _amountFiat = total.GenerateFiatText(fiatExchangeRate, "USD"); if (optimisationLevel == PrivacyOptimisationLevel.Better) { var fiatOriginal = originalAmount * fiatExchangeRate; var fiatDifference = fiatTotal - fiatOriginal; _caption = (fiatDifference > 0 ? $"{fiatDifference.GenerateFiatText("USD")} More" : $"{Math.Abs(fiatDifference).GenerateFiatText("USD")} Less") .Replace("(", "").Replace(")", ""); } else { _caption = "As Requested"; } _amount = $"{total}"; }
public PrivacySuggestionControlViewModel(decimal originalAmount, BuildTransactionResult transactionResult, PrivacyOptimisationLevel optimisationLevel, params string[] benefits) { _transactionResult = transactionResult; _optimisationLevel = optimisationLevel; _benefits = benefits; decimal total = transactionResult.CalculateDestinationAmount().ToDecimal(MoneyUnit.BTC); if (optimisationLevel == PrivacyOptimisationLevel.Better) { var pcDifference = ((total - originalAmount) / originalAmount) * 100; _caption = pcDifference > 0 ? $"{pcDifference:F}% More" : $"{Math.Abs(pcDifference):F}% Less"; } else { _caption = "As Requested"; } _title = $"{total}"; }
public PrivacySuggestionControlViewModel( decimal originalAmount, BuildTransactionResult transactionResult, PrivacyOptimisationLevel optimisationLevel, decimal fiatExchangeRate, params PrivacySuggestionBenefit[] benefits) { TransactionResult = transactionResult; _optimisationLevel = optimisationLevel; _benefits = benefits.ToList(); decimal total = transactionResult.CalculateDestinationAmount().ToDecimal(MoneyUnit.BTC); var fiatTotal = total * fiatExchangeRate; _amountFiat = total.GenerateFiatText(fiatExchangeRate, "USD"); _optimisationLevelGood = optimisationLevel == PrivacyOptimisationLevel.Better; if (_optimisationLevelGood) { var fiatOriginal = originalAmount * fiatExchangeRate; var fiatDifference = fiatTotal - fiatOriginal; var difference = (fiatDifference > 0 ? $"{fiatDifference.GenerateFiatText("USD")} More" : $"{Math.Abs(fiatDifference).GenerateFiatText("USD")} Less") .Replace("(", "").Replace(")", ""); _benefits.Add(new(false, difference)); } else { // This is just to pad the control. _benefits.Add(new(false, " ")); } _amount = $"{total}"; }