private static Publisher CreatePublisher()
        {
            var settings           = Settings.Default;
            var logger             = new AutoUpdateLogger(_logDirectory.FullName);
            var achievementManager = new AchievementManager(new SteamRepository());
            var communityManager   = new SteamCommunityManager(new WebClientWrapper(), new SteamProfileXmlParser(), new GameXmlParser(), new AchievementXmlParser());
            var achievementService = new AchievementService(achievementManager, communityManager);
            var facebookClient     = new FacebookClientService(settings.FacebookAppId, settings.FacebookAppSecret, settings.FacebookCanvasUrl);
            var autoUpdateManager  = new AutoUpdateManager(achievementService, new UserService(achievementManager), facebookClient, logger);

            return(new Publisher(autoUpdateManager));
        }
        /// <summary>
        /// Enable facebook authentication for the application
        /// </summary>
        /// <param name="configuration">
        /// The facebook authentication configuration
        /// </param>
        /// <param name="facebookAPIFactory">
        /// The facebook object builder
        /// </param>
        /// <param name="facebookUrlHelper">
        /// The facebook url helper
        /// </param>
        public static void Enable(FacebookAuthenticationConfiguration configuration, IFacebookAPIFactory facebookAPIFactory, IFacebookUrlHelper facebookUrlHelper)
        {
            if (configuration == null)
            {
                throw new ArgumentNullException("configuration");
            }

            if (!configuration.IsValid)
            {
                throw new ArgumentException("Configuration is invalid", "configuration");
            }

            if (facebookAPIFactory == null)
            {
                throw new ArgumentNullException("facebookAPIFactory");
            }

            if (facebookUrlHelper == null)
            {
                throw new ArgumentNullException("facebookUrlHelper");
            }

            Enabled = true;
            Configuration = configuration;
            FacebookClientService = new FacebookClientService(ApplicationAuthenticator, FacebookCurrentAuthenticatedUserCache, facebookAPIFactory);
            FacebookOAuthService = new FacebookOAuthService(facebookAPIFactory, facebookUrlHelper);
        }