public async Task SaveGameMap(GameMapRequest items) { using (var transaction = await _unitOfWork.Context.Database.BeginTransactionAsync()) { try { var mapps = await _unitOfWork.GameMapRepository.Table.Where(p => p.GameId == items.GameId).ToListAsync(); _unitOfWork.Context.RemoveRange(mapps); await _unitOfWork.Context.SaveChangesAsync(); foreach (var item in items.Maps) { await _unitOfWork.GameMapRepository.Create(Mapper.Map <GameMap>(item)); } await _unitOfWork.SaveAsync(); transaction.Commit(); } catch (Exception e) { transaction.Rollback(); throw e.HandlException(); } } }
public async Task <IActionResult> SaveGameMap(int id, [FromBody] List <GameMapModel> items) { var request = new GameMapRequest(); request.GameId = id; request.Maps = items; await _service.SaveGameMap(request); return(Ok()); }