示例#1
0
 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();
 }
示例#2
0
        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);
        }