Exemple #1
0
        private static FieldUnd <Und2Values> WrapBothValues <T>
            (object value2, D7FieldAttribute att, T itemIn)
        {
            var value1 = att.GetValue1(itemIn);
            //return und.Value1_2(value1, value2);

            var d8Val1 = ((DateTime)value1).ToString("yyyy-MM-dd HH:mm:ss");
            var d8Val2 = ((DateTime)value2).ToString("yyyy-MM-dd HH:mm:ss");

            return(und.Value1_2(d8Val1, d8Val2));
        }
Exemple #2
0
        private static void SetFieldValue <T>(D7NodeBase d7Node,
                                              PropertyInfo inProp,
                                              PropertyInfo outProp,
                                              D7FieldAttribute fieldAttr,
                                              object value,
                                              T itemIn)
        {
            if (outProp == null)
            {
                return;
            }

            if (fieldAttr.FieldType == D7FieldTypes.DirectValue)
            {
                outProp.SetValue(d7Node, value, null);
                return;
            }

            object fieldVal = null;

            switch (fieldAttr.FieldType)
            {
            case D7FieldTypes.CckField:
                fieldVal = MapCckField(fieldAttr, value, itemIn, inProp);
                break;

            case D7FieldTypes.NodeReference:
                //Throw.IfNull(value, $"‹ID7Node› for “{outProp.Name}”");
                if (value != null)
                {
                    fieldVal = und.TargetIds((value.As <ID7Node>()).nid);
                }
                break;

            case D7FieldTypes.TermReference:
                fieldVal = MapTermRefField(outProp, value);
                break;

            case D7FieldTypes.FileReference:
                fieldVal = und.Fids(value.ToString().ToInt());
                break;

            case D7FieldTypes.UserReference:
                if (value != null)
                {
                    fieldVal = und.TargetIds((value.As <D7User>()).uid);
                }
                break;

            default:
                throw Error.Unsupported(fieldAttr.FieldType);
            }
            outProp.SetValue(d7Node, fieldVal, null);
        }
Exemple #3
0
        private static object MapCckField <T>(D7FieldAttribute fieldAttr, object value, T itemIn, PropertyInfo inProp)
        {
            if (fieldAttr.Has2Values)
            {
                return(WrapBothValues(value, fieldAttr, itemIn));
            }

            if (inProp.PropertyType == typeof(bool))
            {
                return(und.Values((bool)value ? 1 : 0));
            }

            if (inProp.PropertyType == typeof(bool?))
            {
                var nulB = (bool?)value;
                if (nulB.HasValue)
                {
                    return(und.Values(nulB.Value ? 1 : 0));
                }
                else
                {
                    return(und.Values(null));
                }
            }

            if (inProp.PropertyType == typeof(DateTime))
            {
                return(und.Values(((DateTime)value).ToString("yyyy-MM-dd HH:mm:ss")));
            }

            if (inProp.PropertyType == typeof(DateTime?))
            {
                var nD8 = (DateTime?)value;
                if (nD8.HasValue)
                {
                    return(und.Values(nD8?.ToString("yyyy-MM-dd HH:mm:ss")));
                }
                else
                {
                    return(und.Values(null));
                }
            }

            return(und.Values(value));
        }