Use type matching to create result

This commit is contained in:
弘韬 张 2021-01-27 16:23:59 +08:00
parent 8b698c4465
commit c0f60e25bf

View file

@ -26,32 +26,25 @@ namespace Flow.Launcher.Plugin.Explorer.Search.QuickAccessLinks
.OrderBy(x => x.Type) .OrderBy(x => x.Type)
.ThenBy(x => x.Nickname); .ThenBy(x => x.Nickname);
return queriedAccessLinks return queriedAccessLinks.Select(l => l.Type switch
.Where(x => x.Type == ResultType.Folder) {
.Select(item => ResultType.Folder => resultManager.CreateFolderResult(l.Nickname, l.Path, l.Path, query),
resultManager.CreateFolderResult(item.Nickname, item.Path, item.Path, query)) ResultType.File => resultManager.CreateFileResult(l.Path, query),
.Concat( _ => throw new ArgumentOutOfRangeException()
queriedAccessLinks
.Where(x => x.Type == ResultType.File) }).ToList();
.Select(item =>
resultManager.CreateFileResult(item.Path, query)))
.ToList();
} }
internal List<Result> AccessLinkListAll(Query query, List<AccessLink> accessLinks) internal List<Result> AccessLinkListAll(Query query, List<AccessLink> accessLinks)
=> accessLinks => accessLinks
.OrderBy(x => x.Type) .OrderBy(x => x.Type)
.ThenBy(x => x.Nickname) .ThenBy(x => x.Nickname)
.Where(x => x.Type == ResultType.Folder) .Select(l => l.Type switch
.Select(item => {
resultManager.CreateFolderResult(item.Nickname, item.Path, item.Path, query)) ResultType.Folder => resultManager.CreateFolderResult(l.Nickname, l.Path, l.Path, query),
.Concat( ResultType.File => resultManager.CreateFileResult(l.Path, query),
accessLinks _ => throw new ArgumentOutOfRangeException()
.OrderBy(x => x.Type)
.ThenBy(x => x.Nickname) }).ToList();
.Where(x => x.Type == ResultType.File)
.Select(item =>
resultManager.CreateFileResult(item.Path, query)))
.ToList();
} }
} }