private void SetBalance() { var balance = _accountsRepository.Items .Sum( account => CurrenciesList.Convert(account.Currency, CurrenciesList.ReferenceCurrency.Code, account.Balance)); Balance = CurrenciesList.ReferenceCurrency.GetFormattedValue(balance); }
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; }); }