public void DeleteGame(Game game) { using (Logger.GetLogger(this, game)) { var playerService = ServiceFactory.CreatePlayerService(game); var teamService = ServiceFactory.CreateTeamService(game); var seasonManager = new SeasonManager(game); using (var repository = new RepositoryFactory().CreateUnitOfWorkRepository()) { // Delete all players. var players = playerService.GetAll(game); repository.RegisterDelete(players); // Delete all teams. var teams = teamService.GetAll(game); repository.RegisterDelete(teams); // Delete the seasons, matches etc. seasonManager.DeleteSeasons(repository); // Delete the game itself. repository.RegisterDelete(game); repository.Save(); } } }