Ejemplo n.º 1
0
        public bool TryDictify(
            dynamic objectData,
            IGraphSONWriter serializer,
            IGenericSerializer genericSerializer,
            out dynamic result)
        {
            if (objectData == null)
            {
                result = null;
                return(false);
            }

            var tupleType = (Type)objectData.GetType();

            if (!Utils.IsTuple(tupleType))
            {
                result = null;
                return(false);
            }

            var tupleTypeInfo = tupleType.GetTypeInfo();
            var subtypes      = tupleTypeInfo.GetGenericArguments();
            var data          = new List <object>();

            for (var i = 1; i <= subtypes.Length; i++)
            {
                var prop = tupleTypeInfo.GetProperty("Item" + i);
                if (prop != null)
                {
                    data.Add(prop.GetValue(objectData, null));
                }
            }

            var dict = new Dictionary <string, dynamic>
            {
                { "cqlType", "tuple" },
                {
                    "definition",
                    data.Select(elem => ComplexTypeDefinitionHelper.GetDefinitionByValue(genericSerializer, elem))
                },
                { "value", data.Select(d => serializer.ToDict(d)) }
            };

            result = GraphSONUtil.ToTypedValue("Tuple", dict, "dse");
            return(true);
        }
Ejemplo n.º 2
0
 private Dictionary <string, dynamic> GetUdtTypeDefinition(UdtMap map, IGenericSerializer genericSerializer)
 {
     return(ComplexTypeDefinitionHelper.GetUdtTypeDefinition(
                new Dictionary <string, dynamic>(), map, genericSerializer));
 }