private static string FormatCustomType(object input, FieldSchema schema, IContext context) { string result; if (input == null) { result = String.Empty; } else { var binder = context.GetBinder(schema.CustomType); Trace.WriteLineIf(binder == null, "Binder resolving failed for complex type: " + schema.CustomType); result = binder == null ? String.Empty : binder.Format(input, schema, context); } return result; }
//NOTE:type dependant private static bool ValidateEnumeration(object value, DataType type, Node node, string listStr, bool isBlackList) { bool result; if (!String.IsNullOrWhiteSpace(listStr) && value != null && type.IsPrimitive()) { var enumSchema = new FieldSchema { DataType = type }; var list = listStr.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries) .Select(x => Parsers.ParseString(x, enumSchema, node.Context)) .Where(x => x != null); var inList = list.Cast<dynamic>() .Any(x => x.Equals(value)); result = isBlackList ? !inList : inList; } else { result = true; } return result; }
private static object ParseCustomType(string input, FieldSchema schema, IContext context) { object result; if (!String.IsNullOrWhiteSpace(schema.CustomType)) { var binder = context.GetBinder(schema.CustomType); Trace.WriteLineIf(binder == null, "Binder resolving failed for complex type: " + schema.CustomType); result = binder == null ? null : binder.Parse(input, schema, context); } else { result = input ?? String.Empty; } return result; }