public override IAsyncOperation <LaunchResult> HandleAsync(UriHandlerData data) { var v = unescape2(data.Paths[1]); var category = GetCategory(data); var advanced = GetAdvancedSearchOptions(data); switch (data.Path0) { case "tag": return(AsyncOperation <LaunchResult> .CreateCompleted(new SearchLaunchResult(Tag.Parse(v.TrimEnd(trim)).Search(category, advanced)))); case "uploader": return(AsyncOperation <LaunchResult> .CreateCompleted(new SearchLaunchResult(Client.Current.Search(v, null, category, advanced)))); } return(AsyncOperation <LaunchResult> .CreateFault(new NotSupportedException("Unsupported uri."))); }