public override ICommandResult Process(IContext context)
{
var arguments = CollectAndValidateArguments(
context.Arguments,
languagePair => TranslatorParamValidator.LanguagePair,
toBeTranslated => ParamValidator.Custom(@"\s*""(?<param>[^""]+)""", false));
return Run<string, Exception>(delegate
{
var langs = arguments["languagePair"].Value.Split(':');
var translated = _languageSrv.Translate(
LanguageConfig.Instance.APIKey,
arguments["toBeTranslated"],
EnsureValid(langs[SourceIndex], context.User.CountryCode),
EnsureValid(langs[TargetIndex], context.User.CountryCode),
"text/plain",
"general");
return translated;
},
result => CommandResult.Success(result)
);
}