Ejemplo n.º 1
0
        private void SetBalance()
        {
            var balance = _accountsRepository.Items
                          .Sum(
                account => CurrenciesList.Convert(account.Currency, CurrenciesList.ReferenceCurrency.Code, account.Balance));

            Balance = CurrenciesList.ReferenceCurrency.GetFormattedValue(balance);
        }
Ejemplo n.º 2
0
        public async Task AddTransferTransaction(TransferTransaction transaction, string sourceAccountId, string targetAccountId, double amount)
        {
            await _realm.WriteAsync(realm => {
                var sourceAccount    = realm.Find <Account>(sourceAccountId);
                var targetAccount    = realm.Find <Account>(targetAccountId);
                var transferCategory = realm.Find <Category>("Transfer"); //TODO: make category

                //TODO: CURRENCIES

                var date = new DateTimeOffset(DateTime.Now);

                var sourceTransaction = new WalletTransaction {
                    Account             = sourceAccount,
                    Category            = transferCategory,
                    Amount              = -amount,
                    Date                = date,
                    TransferTransaction = transaction
                };

                var targetAmount = CurrenciesList.Convert(sourceAccount.Currency, targetAccount.Currency, amount);

                var targetTransaction = new WalletTransaction {
                    Account             = targetAccount,
                    Category            = transferCategory,
                    Amount              = targetAmount,
                    Date                = date,
                    TransferTransaction = transaction
                };

                transaction.SourceTransaction = sourceTransaction;
                transaction.TargetTransaction = targetTransaction;

                realm.Add(transaction);
                realm.Add(sourceTransaction);
                realm.Add(targetTransaction);

                sourceAccount.Balance -= amount;
                targetAccount.Balance += targetAmount;
            });
        }