private static string UnrollMemberPath(MemberExpression predicate, RequestBuilderConfiguration configuration) { var path = ""; if (predicate.Expression != null && predicate.Expression is MemberExpression) { path = UnrollMemberPath(predicate.Expression as MemberExpression, configuration) + "."; } return(path + FieldInterpreter.Run(predicate.Member.Name, configuration)); }
private static string GetFields(PropertyInfo property, RequestBuilderConfiguration configuration, string parentPath = "") { var fields = new List <string>(); var path = parentPath + FieldInterpreter.Run(property.Name, configuration); if (property.GetCustomAttribute <IncludeAttribute>() != null) { foreach (var p in property.PropertyType.GetProperties()) { fields.Add(GetFields(p, configuration, path + ".")); } } else if (property.GetCustomAttribute <ExcludeAttribute>() == null) { fields.Add(path); } return(string.Join(",", fields)); }