protected virtual string GetExpressionValue(IMapping mapping) { if (mapping == null) { throw new ArgumentNullException(nameof(mapping)); } if (string.IsNullOrWhiteSpace(mapping.Translation)) { return(string.Empty); } string translation = this.GetPreProcessedTranslation(mapping.Translation, mapping); bool flag = false; TranslationFilterEventArgs e = new TranslationFilterEventArgs() { Transalation = translation, Mapping = mapping }; if (this.ProcessExpression != null) { flag = this.ProcessExpression((object)this, e); } if (flag) { translation = e.FilteredTranslation; } if (this.ProcessExpressionFunc != null) { translation = this.ProcessExpressionFunc(translation, mapping); } return(this.Translator.GetTranslatioinValue(translation, mapping)); }
protected virtual string GetMacroValue(IMapping mapping) { if (mapping == null) { throw new ArgumentNullException(nameof(mapping)); } if (string.IsNullOrWhiteSpace(mapping.Translation)) { return(string.Empty); } string processedTranslation = this.GetPreProcessedTranslation(mapping.Translation, mapping); bool flag = false; TranslationFilterEventArgs e = new TranslationFilterEventArgs() { Transalation = processedTranslation, Mapping = mapping }; if (this.ProcessMacro != null) { foreach (Delegate invocation in this.ProcessMacro.GetInvocationList()) { if (invocation is TranslationFilterHandler) { flag = (invocation as TranslationFilterHandler)((object)this, e); if (flag) { break; } } } } if (flag) { return(e.FilteredTranslation); } if (this.ProcessMacroFunc != null) { return(this.ProcessMacroFunc(processedTranslation, mapping)); } throw new Exception(string.Format("The macro:{0} can't be defined.", (object)mapping.Translation)); }
protected virtual string GetPreProcessedTranslation(string translation, IMapping mapping) { if (string.IsNullOrWhiteSpace(translation)) { return(string.Empty); } bool flag = false; TranslationFilterEventArgs e = new TranslationFilterEventArgs() { Transalation = translation, Mapping = mapping }; if (this.PreProcessExpression != null) { foreach (Delegate invocation in this.PreProcessExpression.GetInvocationList()) { if (invocation is TranslationFilterHandler) { flag = (invocation as TranslationFilterHandler)((object)this, e); if (flag) { break; } } } } if (flag) { translation = e.FilteredTranslation; } if (this.PreProcessExpressionFunc != null) { translation = this.PreProcessExpressionFunc(translation, mapping); } return(translation); }