示例#1
0
文件: Formatters.cs 项目: wpq0/FormNG
 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;
 }
示例#2
0
文件: Validation.cs 项目: wpq0/FormNG
        //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;
        }
示例#3
0
文件: Parsers.cs 项目: wpq0/FormNG
 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;
 }