/// <summary> /// Gets a resource string based on the specified expression. /// </summary> /// <param name="expression">The expression used to build the resource key</param> /// <param name="languageId">Language identifier</param> /// <param name="logIfNotFound">A value indicating whether to log error if locale string resource is not found</param> /// <param name="defaultValue">Default value</param> /// <param name="returnEmptyIfNotFound">A value indicating whether to empty string will be returned if a resource is not found and default value is set to empty string</param> /// <returns>A string representing the requested resource string.</returns> /// <remarks></remarks> public string GetResource(System.Linq.Expressions.Expression <Func <string> > expression, ObjectId?languageId = null, bool?logIfNotFound = null, string defaultValue = "", bool returnEmptyIfNotFound = false) { var expressionVisitor = new LocalizationNodeExpressionVisitor(expression); return(GetResource(expressionVisitor.ResourceName, languageId, logIfNotFound, expressionVisitor.DefaultValue, returnEmptyIfNotFound)); }
public void Can_resolve_resource() { var expressionVisitor = new LocalizationNodeExpressionVisitor(() => Products.Value); expressionVisitor.ResourceName.ShouldEqual("Products"); expressionVisitor.DefaultValue.ShouldEqual("Products value"); expressionVisitor = new LocalizationNodeExpressionVisitor(() => Products.Categories.Edit); expressionVisitor.ResourceName.ShouldEqual("Products.Categories.Edit"); expressionVisitor.DefaultValue.ShouldEqual("Edit category value"); expressionVisitor = new LocalizationNodeExpressionVisitor(() => LoginAdditional.RememberMe); expressionVisitor.ResourceName.ShouldEqual("Login.Additional.RememberMe"); expressionVisitor.DefaultValue.ShouldEqual("Remember me"); expressionVisitor = new LocalizationNodeExpressionVisitor(() => Login.RememberMe); expressionVisitor.ResourceName.ShouldEqual("Resources.Security.Login.RememberMe"); expressionVisitor.DefaultValue.ShouldEqual("Remember me"); }