private async Task<ArgumentHandleResult> ProcessInputFile(string filename) {
var isDirectory = FileUtils.IsDirectory(filename);
if (!isDirectory && filename.EndsWith(@".acreplay", StringComparison.OrdinalIgnoreCase) ||
Path.GetDirectoryName(filename)?.Equals(FileUtils.GetReplaysDirectory(), StringComparison.OrdinalIgnoreCase) == true) {
await GameWrapper.StartReplayAsync(new Game.StartProperties(new Game.ReplayProperties {
Filename = filename
}));
return ArgumentHandleResult.Successful;
}
if (!isDirectory && filename.EndsWith(@".kn5", StringComparison.OrdinalIgnoreCase)) {
await CustomShowroomWrapper.StartAsync(filename);
return ArgumentHandleResult.Successful;
}
try {
new InstallAdditionalContentDialog(filename).ShowDialog();
} catch (Exception e) {
NonfatalError.Notify(AppStrings.Arguments_CannotInstallAdditionalContent, e);
return ArgumentHandleResult.Failed;
}
return ArgumentHandleResult.Successful;
}