예제 #1
0
파일: MfVault.cs 프로젝트: weijx-xa/test
        private object GetValue(MfPropDef prop, string value, TraceSource log)
        {
            value = value ?? String.Empty;
            switch ((MFDataType)prop.DataType)
            {
            case MFDataType.MFDatatypeText:
            case MFDataType.MFDatatypeMultiLineText:
                return(value);

            case MFDataType.MFDatatypeBoolean:
                return(GetBoolValue(value));

            case MFDataType.MFDatatypeDate:
                return(GetDate(value, log));

            case MFDataType.MFDatatypeLookup:
            case MFDataType.MFDatatypeMultiSelectLookup:
                var itemId = GetIdFromValueList(prop.ValueList, value, log);
                if (itemId != null)
                {
                    return(itemId.Value);
                }
                break;

            case MFDataType.MFDatatypeInteger:
            case MFDataType.MFDatatypeInteger64:
                int val;
                var ok = int.TryParse(value, out val);
                if (ok)
                {
                    return(val);
                }
                if (log != null)
                {
                    log.TraceEvent(TraceEventType.Warning, 0, "不是数字:" + value);
                }
                break;

            case MFDataType.MFDatatypeFloating:
                double dVal;
                ok = double.TryParse(value, out dVal);
                if (ok)
                {
                    return(dVal);
                }
                if (log != null)
                {
                    log.TraceEvent(TraceEventType.Warning, 0, "不是数字:" + value);
                }
                break;
            }
            if (!String.IsNullOrEmpty(value))
            {
                throw new Exception("未能找到对应的属性值:" + value);
            }
            return(null);
        }
예제 #2
0
파일: ClassProps.cs 프로젝트: weijx-xa/test
 private static MfPropDef GetProp(Vault vault, int def)
 {
     if (!PropDict.ContainsKey(def))
     {
         var propDef = vault.PropertyDefOperations.GetPropertyDef(def);
         if (propDef.AutomaticValueType != MFAutomaticValueType.MFAutomaticValueTypeNone)
         {
             return(null);
         }
         var mp = new MfPropDef
         {
             Def       = def,
             DataType  = (int)propDef.DataType,
             Name      = propDef.Name,
             ValueList = propDef.ValueList
         };
         PropDict.Add(def, mp);
     }
     return(PropDict[def]);
 }
예제 #3
0
파일: MfVault.cs 프로젝트: weijx-xa/test
 public object GetValue(MfPropDef prop, string value)
 {
     return(GetValue(prop, value, null));
 }