public static IEnumerable <IModListingGetter> ListingsFromPath( FilePath cccFilePath, DirectoryPath dataPath, IFileSystem?fileSystem = null) { fileSystem ??= IFileSystemExt.DefaultFilesystem; var dataDirectoryInjection = new DataDirectoryInjection(dataPath); return(new CreationClubListingsProvider( fileSystem, dataDirectoryInjection, new CreationClubListingsPathInjection(cccFilePath), new CreationClubRawListingsReader()).Get()); }
public static IEnumerable <IModListingGetter> GetListings(GameCategory category, DirectoryPath dataPath) { var gameCategoryInjection = new GameCategoryInjection(category); var dataDirectoryInjection = new DataDirectoryInjection(dataPath); return(new CreationClubListingsProvider( IFileSystemExt.DefaultFilesystem, dataDirectoryInjection, new CreationClubListingsPathProvider( gameCategoryInjection, new CreationClubEnabledProvider( gameCategoryInjection), new GameDirectoryInjection(dataPath.Directory !.Value)), new CreationClubRawListingsReader()).Get()); }
public void SkipMissingListings() { var cccPath = Path.Combine(DataDir, "cccPlugin.txt"); var fs = new MockFileSystem(new Dictionary <string, MockFileData>() { { cccPath, @"ModA.esp ModB.esp" }, { Path.Combine(DataDir, "ModA.esp"), string.Empty } }); var dataDirectoryInjection = new DataDirectoryInjection(DataDir); new CreationClubListingsProvider( fs, dataDirectoryInjection, new CreationClubListingsPathInjection(cccPath), new CreationClubRawListingsReader()) .Get().Should().Equal( new ModListing("ModA.esp", true)); }
public static IObservable <IChangeSet <IModListingGetter> > GetLiveLoadOrder( FilePath cccFilePath, DirectoryPath dataFolderPath, out IObservable <ErrorResponse> state, IFileSystem?fileSystem = null, IScheduler?scheduler = null) { fileSystem ??= IFileSystemExt.DefaultFilesystem; var cccPath = new CreationClubListingsPathInjection(cccFilePath); var dataDir = new DataDirectoryInjection(dataFolderPath); return(new CreationClubLiveLoadOrderProvider( new CreationClubLiveListingsFileReader( fileSystem, new CreationClubRawListingsReader(), cccPath), new CreationClubLiveLoadOrderFolderWatcher( fileSystem, dataDir)).Get(out state, scheduler)); }