public void SetTransaction(BankTransaction transaction) { DateText.text = transaction.Date.Value.ToString("d", DateTimeFormatInfo.InvariantInfo); DescriptionText.text = transaction.Description; AmountText.text = transaction.DeltaCurrency.ToString("+#;-#;0"); // from https://stackoverflow.com/a/348242/5931898 BalanceText.text = (transaction.InitialCurrency + transaction.DeltaCurrency).ToString(); }
public bool AddTransaction(int deltaCurrency, string description, bool autoAlert = true) { if (!HaveEnoughMoney(deltaCurrency)) { if (autoAlert) { Alert.Instance.ShowMessageImmediately(InsufficientFundsAlertMessage); } return(false); } long cappedDelta = Math.Min(deltaCurrency, MaximumBalance - CurrentBalance); if (cappedDelta != deltaCurrency) { if (cappedDelta < 0) { throw new InvalidOperationException($"somehow CurrentBalance ({CurrentBalance}) got bigger than the MaximumBalance ({MaximumBalance})"); } if (autoAlert) { Alert.Instance.ShowMessageImmediately(CappedBalanceAlertMessage); } if (cappedDelta == 0) { return(false); } } BankTransaction transaction = new BankTransaction { InitialCurrency = CurrentBalance, DeltaCurrency = cappedDelta, Description = description, Date = new SaveableDate(TimeState.DateTime.Date) }; TransactionData.Value.Add(transaction); return(true); }