public AccountingBalancesDto GetCurrentBalances() { var balances = new AccountingBalancesDto(); var latestBankTransaction = Context.Transactions.LastOrDefault(t => t.TransactionSourceTypeId == (int)SiriusEnums.TransactionSourceTypes.BankAccount); var latestChurchTransaction = Context.Transactions.LastOrDefault(t => t.TransactionSourceTypeId == (int)SiriusEnums.TransactionSourceTypes.ChurchAccount); if (latestBankTransaction != null) { balances.BankBalance = latestBankTransaction.Balance; } if (latestChurchTransaction != null) { balances.ChurchBalance = latestChurchTransaction.Balance; } return(balances); }
public AccountingBalancesDto GetCurrentBalancesThisMonthOnly() { var balances = new AccountingBalancesDto(); var currentMonthTransactionsForBank = Context.Transactions.Where(t => t.TransactionDate >= DateTime.Now.StartOfMonth() && t.TransactionDate <= DateTime.Now.EndOfMonth() && t.TransactionSourceTypeId == (int)SiriusEnums.TransactionSourceTypes.BankAccount); var currentMonthTransactionsForChurch = Context.Transactions.Where(t => t.TransactionDate >= DateTime.Now.StartOfMonth() && t.TransactionDate <= DateTime.Now.EndOfMonth() && t.TransactionSourceTypeId == (int)SiriusEnums.TransactionSourceTypes.ChurchAccount); if (currentMonthTransactionsForBank.Any()) { var sumOfDebit = currentMonthTransactionsForBank.Sum(s => s.Debit); var sumOfCredit = currentMonthTransactionsForBank.Sum(s => s.Credit); balances.BankBalance = sumOfDebit - sumOfCredit; } else { balances.BankBalance = 0; } if (currentMonthTransactionsForChurch.Any()) { var sumOfDebit = currentMonthTransactionsForChurch.Sum(s => s.Debit); var sumOfCredit = currentMonthTransactionsForChurch.Sum(s => s.Credit); balances.ChurchBalance = sumOfDebit - sumOfCredit; } else { balances.ChurchBalance = 0; } return(balances); }