public async Task<ArgumentHandleResult> ProcessArgument(string argument) {
if (string.IsNullOrWhiteSpace(argument)) return ArgumentHandleResult.FailedShow;
if (argument.StartsWith(CustomUriSchemeHelper.UriScheme, StringComparison.InvariantCultureIgnoreCase)) {
return await ProcessUriRequest(argument);
}
if (argument.StartsWith(@"http:", StringComparison.OrdinalIgnoreCase) || argument.StartsWith(@"https:", StringComparison.OrdinalIgnoreCase) ||
argument.StartsWith(@"ftp:", StringComparison.OrdinalIgnoreCase)) {
argument = await LoadRemoveFile(argument);
if (string.IsNullOrWhiteSpace(argument)) return ArgumentHandleResult.FailedShow;
}
try {
if (!FileUtils.Exists(argument)) return ArgumentHandleResult.FailedShow;
} catch (Exception) {
return ArgumentHandleResult.FailedShow;
}
return await ProcessInputFile(argument);
}