public async Task <IResult <Folder> > Search(string nameToSearch, int page) { var homePathResult = _pathManager.Combine(_configuration.HomeFolderPath, _configuration.HomeFolderName); if (!homePathResult.IsSuccess) { return(new FailureResult <Folder>(homePathResult.Exception)); } var homeFolderResult = _folderProvider.GetFolder(homePathResult.Data); if (!homeFolderResult.IsSuccess) { return(new FailureResult <Folder>(homeFolderResult.Exception)); } var loadSearchResults = await homeFolderResult.Data.LoadSearchPageAsync(nameToSearch, page); if (!loadSearchResults.IsSuccess) { return(new FailureResult <Folder>(loadSearchResults.Exception)); } return(new SuccessResult <Folder>(homeFolderResult.Data)); }
public async Task SetDiscs(IEnumerable <AddedDiscInfo> discs, CancellationToken cancellationToken) { ClearDiscItems(); var discsList = discs.ToList(); var libraryArtists = await artistService.GetAllArtists(cancellationToken); var availableGenres = await genreService.GetAllGenres(cancellationToken); // For genre guessing we use all discs, including deleted. var allDiscs = await discService.GetAllDiscs(cancellationToken); foreach (var addedDiscInfo in discsList) { var parentFolder = await folderProvider.GetFolder(addedDiscInfo.DestinationFolderPath, cancellationToken); var folderExists = parentFolder != null; var existingDisc = parentFolder?.Discs.SingleOrDefault(d => d.TreeTitle == addedDiscInfo.TreeTitle); var availableArtists = BuildAvailableArtistsList(addedDiscInfo, libraryArtists); DiscViewItem discViewItem = existingDisc != null ? new ExistingDiscViewItem(existingDisc, addedDiscInfo, availableArtists, availableGenres) : new NewDiscViewItem(addedDiscInfo, folderExists, availableArtists, availableGenres, GuessArtistGenre(allDiscs, addedDiscInfo.Artist)); discViewItem.PropertyChanged += DiscItem_PropertyChanged; Discs.Add(discViewItem); } }
public async Task <IResult <Void> > CreateFolderAsync( string name, string path, IFolderProvider <T> folderProvider = null) { folderProvider = folderProvider ?? FolderProvider; var folderResult = folderProvider.GetFolder(path); if (!folderResult.IsSuccess) { return(new FailureResult(folderResult.Exception)); } var addChildFolderResult = await folderResult.Data.AddChildFolderAsync(name); if (!addChildFolderResult.IsSuccess) { return(new FailureResult(addChildFolderResult.Exception)); } return(new SuccessResult()); }