public IEnumerable <Expression> Process( PropertyInfo prop, IEnumerable <Expression> expressions, Expression modelExpression) { return(expressions.Prepend(TR.WriteText(TR.GetFormatted(Prefix, modelExpression)))); }
public IEnumerable <Expression> Process( PropertyInfo prop, IEnumerable <Expression> expressions, Expression modelExpression) { Expression isNotNull; if (prop.PropertyType.IsValueType) { if (prop.PropertyType.IsGenericType && prop.PropertyType.GetGenericTypeDefinition() == typeof(Nullable <>)) { isNotNull = Expression.Property( Expression.Property(modelExpression, prop), nameof(Nullable <int> .HasValue)); } else { return(expressions); } } else { isNotNull = Expression.NotEqual( Expression.Property(modelExpression, prop), Expression.Constant(null)); } var nulled = TR.WriteText(TR.GetFormatted(Coalesce, modelExpression)); var notNulled = Expression.IfThenElse(isNotNull, Expression.Block(expressions), Expression.Block(nulled)); return(Enumerable.Repeat(notNulled, 1)); }
public IEnumerable <Expression> Process( PropertyInfo prop, IEnumerable <Expression>?expressions, Expression modelExpression) { return(expressions .Prepend(TR.WriteHtml("\"></i> ")) .Prepend(TR.WriteText(TR.GetFormatted(Class, modelExpression))) .Prepend(TR.WriteHtml("<i class=\""))); }
public virtual IEnumerable <Expression> Process( PropertyInfo prop, IEnumerable <Expression>?expressions, Expression modelExpression) { var ret = Content == null ? TR.WriteText(Expression.Property(modelExpression, prop)) : TR.WriteText(TR.GetFormatted(Content, modelExpression)); return(Enumerable.Repeat(ret, 1)); }
public override IEnumerable <Expression> Process( PropertyInfo prop, IEnumerable <Expression>?expressions, Expression modelExpression) { return(new[] { TR.WriteHtml("<i class=\""), TR.WriteText(Class), TR.WriteHtml("\"></i>"), }); }
public IEnumerable <Expression> Process( PropertyInfo prop, IEnumerable <Expression> expressions, Expression modelExpression) { if (prop.PropertyType != typeof(bool) && prop.PropertyType != typeof(bool?)) { throw new TypeAccessException("Not bool or Nullable<bool>."); } var ifTrue = TR.WriteText(TR.GetFormatted(IfTrue, modelExpression)); var ifFalse = TR.WriteText(TR.GetFormatted(IfFalse, modelExpression)); var cond = Expression.Equal(Expression.Property(modelExpression, prop), Expression.Constant(true, prop.PropertyType)); var display = Expression.IfThenElse(cond, ifTrue, ifFalse); return(Enumerable.Repeat(display, 1)); }
public IEnumerable <Expression> Process( PropertyInfo prop, IEnumerable <Expression> e, Expression modelExpression) { if (Url == null) { return(e); } var content = Url.Contains("{") ? TR.GetFormatted(Url, modelExpression) : Expression.Constant(Url); e = e.Append(TR.WriteHtml("</a>")); e = e.Prepend(TR.WriteHtml(Ajax != null ? $"\" data-toggle=\"ajaxWindow\" data-target=\"{Ajax}\">" : "\">")); e = e.Prepend(TR.WriteText(content)); e = e.Prepend(TR.WriteHtml("<a href=\"")); return(e); }