public async void Execute()
        {
            try
            {
                var gamesFromProvider = _listProvider.GetGamesList().ToList();
                var cachedGames       = await _gameRepository.GetGamesAsync();

                var newGames = gamesFromProvider.Where(x => cachedGames.All(y => !y.Equals(x))).ToList();
                if (newGames.Any())
                {
                    await _gameRepository.AddGamesAsync(newGames);
                }
                _logger.LogInformation($"{newGames.Count} games added to the list.");

                var gamesToUpdate = cachedGames
                                    .Where(x => x.RequiresUpdate(gamesFromProvider.FirstOrDefault(y => y.Equals(x)))).ToList();

                if (gamesToUpdate.Any())
                {
                    gamesToUpdate.ForEach(game =>
                    {
                        var newVersion             = gamesFromProvider.First(g => g.Equals(game));
                        game.FourKConfirmed        = newVersion.FourKConfirmed;
                        game.HdrRenderingAvailable = newVersion.HdrRenderingAvailable;
                        game.Status = newVersion.Status;
                    });

                    await _gameRepository.UpdateGamesAsync(gamesToUpdate);
                }
                _logger.LogInformation($"{gamesToUpdate.Count} games have been updated.");
            }
            catch (Exception e)
            {
                _logger.LogError($"An error occured during update list job: {e.Message}");
            }
        }