public async Task <int> PurchaseTransportCard(int load) { if (load < _initialLoadAmount || load > _maxLoadAmount) { throw new Exception($"Initial load must be {_initialLoadAmount} or higher but less than {_maxLoadAmount}"); } var transportCard = new TransportCard { Load = load }; _context.Add(transportCard); if (await _context.SaveChangesAsync() <= 0) { throw new Exception("Purchasing card failed"); } return(transportCard.Id); }