public async void GetSumOfItems() { var items = new List <DatabaseModel.Item> { new DatabaseModel.Item("assetId1", 1, -1, -1, DateTimeOffset.Now, 10), new DatabaseModel.Item("assetId2", 1, -1, -1, DateTimeOffset.Now, 11), new DatabaseModel.Item("assetId3", 2, -1, -1, DateTimeOffset.Now, 12), new DatabaseModel.Item("assetId4", 3, -1, -1, DateTimeOffset.Now, 13), new DatabaseModel.Item("assetId5", 2, -1, -1, DateTimeOffset.Now, 14) }; A.CallTo(() => _descriptionRepoService.ValueOfItemDescriptions(A <List <int> > ._)).Returns(new Dictionary <int, decimal> { { 1, 1 }, { 2, 2 }, { 3, 4 }, }); var itemService = new ItemService(_fakedRepoService); var res = await itemService.GetSumOfItems(items); Assert.Equal(10, res); }
public async Task <decimal> GetSumOfItems(List <DatabaseModel.Item> items) { var dict = await _itemDescriptionRepoService.ValueOfItemDescriptions(items.Select(i => i.DescriptionId).ToList()); var sum = new decimal(0); foreach (var kvp in dict) { sum += items.Where(item => kvp.Key == item.DescriptionId).Sum(item => kvp.Value); } return(sum); }