async Task <ResourceCollection <Transaction> > ITransactionReader.GetAll( Guid userId, DateTimeOffset from, DateTimeOffset to) { var transactionCollections = new List <ResourceCollection <Transaction> >(); var accounts = await((IAccountReader)this).GetAll(userId); foreach (var account in accounts.Items) { var accountTransactions = await GetAll(userId, account.Id, from, to); transactionCollections.Add(accountTransactions); } return(transactionCollections.Aggregate(ResourceCollection <Transaction> .Empty(), (acc, curr) => { var items = new List <Transaction>(); items.AddRange(acc.Items); items.AddRange(curr.Items); return new ResourceCollection <Transaction>(items, acc.Count + curr.Count); })); }