public async Task <double> AddLoad(int id, int load) { var transportCard = await GetCardDetailById(id); var totalLoad = transportCard.Load + load; if (totalLoad > _maxLoadAmount) { throw new Exception("Max Load Amount Exceeded"); } transportCard.Load += load; if (await _context.SaveChangesAsync() <= 0) { throw new Exception("Adding load amount failed."); } return(transportCard.Load); }
public async Task <bool> UpdateMrtFares(IEnumerable <MrtFare> faresToUpdate) { var mrtFareIds = faresToUpdate.Select(s => s.Id).ToList(); var mrtFares = await _context.MrtFares.Where(m => mrtFareIds.Contains(m.Id)).ToListAsync(); mrtFares.ForEach(mrtFare => { var fare = faresToUpdate.FirstOrDefault(f => f.Id == mrtFare.Id)?.Fare; mrtFare.Fare = fare ?? mrtFare.Fare; }); return(await _context.SaveChangesAsync() > 0); }