Flow.Launcher/Plugins/Flow.Launcher.Plugin.Explorer/Search/QuickAccessLinks/QuickAccess.cs

44 lines
1.6 KiB
C#
Raw Normal View History

using System;
2020-05-24 22:14:21 +00:00
using System.Collections.Generic;
using System.Linq;
2021-01-26 09:48:06 +00:00
namespace Flow.Launcher.Plugin.Explorer.Search.QuickAccessLinks
2020-05-24 22:14:21 +00:00
{
internal static class QuickAccess
2020-05-24 22:14:21 +00:00
{
internal static List<Result> AccessLinkListMatched(Query query, List<AccessLink> accessLinks)
2020-05-24 22:14:21 +00:00
{
if (string.IsNullOrEmpty(query.Search))
return new List<Result>();
2020-05-24 22:14:21 +00:00
string search = query.Search.ToLower();
2021-01-25 03:06:03 +00:00
2021-01-26 10:29:56 +00:00
var queriedAccessLinks =
2021-01-26 19:17:24 +00:00
accessLinks
.Where(x => x.Nickname.StartsWith(search, StringComparison.OrdinalIgnoreCase))
.OrderBy(x => x.Type)
.ThenBy(x => x.Nickname);
2021-01-27 08:23:59 +00:00
return queriedAccessLinks.Select(l => l.Type switch
{
ResultType.Folder => ResultManager.CreateFolderResult(l.Nickname, l.Path, l.Path, query),
ResultType.File => ResultManager.CreateFileResult(l.Path, query),
2021-01-27 08:23:59 +00:00
_ => throw new ArgumentOutOfRangeException()
}).ToList();
2020-05-24 22:14:21 +00:00
}
internal static List<Result> AccessLinkListAll(Query query, List<AccessLink> accessLinks)
2021-01-26 10:29:56 +00:00
=> accessLinks
2021-01-26 19:17:24 +00:00
.OrderBy(x => x.Type)
.ThenBy(x => x.Nickname)
2021-01-27 08:23:59 +00:00
.Select(l => l.Type switch
{
ResultType.Folder => ResultManager.CreateFolderResult(l.Nickname, l.Path, l.Path, query),
ResultType.File => ResultManager.CreateFileResult(l.Path, query),
2021-01-27 08:23:59 +00:00
_ => throw new ArgumentOutOfRangeException()
}).ToList();
2020-05-24 22:14:21 +00:00
}
2021-01-25 07:57:58 +00:00
}