Binboo.Language.Commands.TranslateCommand.Process C# (CSharp) Method

Process() public method

Argument format: $translate pt:de "some text" $translate :de "some text"
public Process ( IContext context ) : ICommandResult
context IContext
return ICommandResult
        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)

            );
        }