Ejemplo n.º 1
0
        /*********
        ** Public methods
        *********/
        /// <summary>Construct an instance.</summary>
        /// <param name="environment">The web hosting environment.</param>
        /// <param name="wikiCache">The cache in which to store wiki data.</param>
        /// <param name="modCache">The cache in which to store mod metadata.</param>
        /// <param name="config">The config settings for mod update checks.</param>
        /// <param name="chucklefish">The Chucklefish API client.</param>
        /// <param name="curseForge">The CurseForge API client.</param>
        /// <param name="github">The GitHub API client.</param>
        /// <param name="modDrop">The ModDrop API client.</param>
        /// <param name="nexus">The Nexus API client.</param>
        public ModsApiController(IWebHostEnvironment environment, IWikiCacheRepository wikiCache, IModCacheRepository modCache, IOptions <ModUpdateCheckConfig> config, IChucklefishClient chucklefish, ICurseForgeClient curseForge, IGitHubClient github, IModDropClient modDrop, INexusClient nexus)
        {
            this.ModDatabase = new ModToolkit().GetModDatabase(Path.Combine(environment.WebRootPath, "SMAPI.metadata.json"));

            this.WikiCache = wikiCache;
            this.ModCache  = modCache;
            this.Config    = config;
            this.ModSites  = new ModSiteManager(new IModSiteClient[] { chucklefish, curseForge, github, modDrop, nexus });
        }
Ejemplo n.º 2
0
        /*********
        ** Public methods
        *********/
        /// <summary>Construct an instance.</summary>
        /// <param name="environment">The web hosting environment.</param>
        /// <param name="wikiCache">The cache in which to store wiki data.</param>
        /// <param name="modCache">The cache in which to store mod metadata.</param>
        /// <param name="config">The config settings for mod update checks.</param>
        /// <param name="chucklefish">The Chucklefish API client.</param>
        /// <param name="curseForge">The CurseForge API client.</param>
        /// <param name="github">The GitHub API client.</param>
        /// <param name="modDrop">The ModDrop API client.</param>
        /// <param name="nexus">The Nexus API client.</param>
        public ModsApiController(IWebHostEnvironment environment, IWikiCacheRepository wikiCache, IModCacheRepository modCache, IOptions <ModUpdateCheckConfig> config, IChucklefishClient chucklefish, ICurseForgeClient curseForge, IGitHubClient github, IModDropClient modDrop, INexusClient nexus)
        {
            this.ModDatabase = new ModToolkit().GetModDatabase(Path.Combine(environment.WebRootPath, "SMAPI.metadata.json"));

            this.WikiCache    = wikiCache;
            this.ModCache     = modCache;
            this.Config       = config;
            this.Repositories =
                new IModRepository[]
            {
                new ChucklefishRepository(chucklefish),
                new CurseForgeRepository(curseForge),
                new GitHubRepository(github),
                new ModDropRepository(modDrop),
                new NexusRepository(nexus)
            }
            .ToDictionary(p => p.VendorKey);
        }
Ejemplo n.º 3
0
        /*********
        ** Public methods
        *********/
        /// <summary>Construct an instance.</summary>
        /// <param name="environment">The web hosting environment.</param>
        /// <param name="wikiCache">The cache in which to store wiki data.</param>
        /// <param name="modCache">The cache in which to store mod metadata.</param>
        /// <param name="configProvider">The config settings for mod update checks.</param>
        /// <param name="chucklefish">The Chucklefish API client.</param>
        /// <param name="github">The GitHub API client.</param>
        /// <param name="modDrop">The ModDrop API client.</param>
        /// <param name="nexus">The Nexus API client.</param>
        public ModsApiController(IHostingEnvironment environment, IWikiCacheRepository wikiCache, IModCacheRepository modCache, IOptions <ModUpdateCheckConfig> configProvider, IChucklefishClient chucklefish, IGitHubClient github, IModDropClient modDrop, INexusClient nexus)
        {
            this.ModDatabase = new ModToolkit().GetModDatabase(Path.Combine(environment.WebRootPath, "SMAPI.metadata.json"));
            ModUpdateCheckConfig config = configProvider.Value;

            this.CompatibilityPageUrl = config.CompatibilityPageUrl;

            this.WikiCache           = wikiCache;
            this.ModCache            = modCache;
            this.SuccessCacheMinutes = config.SuccessCacheMinutes;
            this.ErrorCacheMinutes   = config.ErrorCacheMinutes;
            this.Repositories        =
                new IModRepository[]
            {
                new ChucklefishRepository(chucklefish),
                new GitHubRepository(github),
                new ModDropRepository(modDrop),
                new NexusRepository(nexus)
            }
            .ToDictionary(p => p.VendorKey);
        }
Ejemplo n.º 4
0
 public BackgroundService(IWikiCacheRepository wikiCache, IModCacheRepository modCache, JobStorage hangfireStorage)
 {
     BackgroundService.WikiCache = wikiCache;
     BackgroundService.ModCache  = modCache;
 }
Ejemplo n.º 5
0
 /*********
 ** Public methods
 *********/
 /****
 ** Hosted service
 ****/
 /// <summary>Construct an instance.</summary>
 /// <param name="wikiCache">The cache in which to store wiki metadata.</param>
 /// <param name="modCache">The cache in which to store mod data.</param>
 public BackgroundService(IWikiCacheRepository wikiCache, IModCacheRepository modCache)
 {
     BackgroundService.WikiCache = wikiCache;
     BackgroundService.ModCache  = modCache;
 }