private bool compareStats(TransactionCategoryStats stats, decimal min, decimal max, decimal average) { return(stats != null && stats.MinAmount == min && stats.MaxAmount == max && stats.AverageAmount == average); }
public async Task <ActionResult <Dictionary <string, TransactionCategoryStats> > > GetStats() { var result = new Dictionary <string, TransactionCategoryStats>(); var transactions = await transactionRepository.GetAsync(); var flattenedTransactions = transactions.SelectMany(kv => kv.Value); var transactionsByCategory = flattenedTransactions.GroupBy(t => t.TransactionCategory); foreach (var category in transactionsByCategory) { var stats = new TransactionCategoryStats(); stats.MinAmount = category.Min(t => t.Amount); stats.MaxAmount = category.Max(t => t.Amount); stats.AverageAmount = category.Average(t => t.Amount); result.Add(category.Key, stats); } return(result); }