public async Task <IActionResult> Calculate([FromBody] CalculateDto calcDto) { var message = _changeService.Calc(calcDto.AmountPaid, calcDto.TotalAmountToPay); if (!_changeService.IsValid) { return(BadRequest(_changeService.GetErrors)); } var historyEntry = new ChangeHistory(_changeService.TotalChanged()); foreach (var(value, quantity) in _changeService.Notes) { var historyEntryItem = new ChangeHistoryItem(ECurrencyType.Note, quantity, value); historyEntry.AddItem(historyEntryItem); } foreach (var(value, quantity) in _changeService.Coins) { var historyEntryItem = new ChangeHistoryItem(ECurrencyType.Coin, quantity, value); historyEntry.AddItem(historyEntryItem); } await _context.ChangeHistories.AddAsync(historyEntry); await _context.SaveChangesAsync(); return(Ok(message)); }