Ejemplo n.º 1
0
        public static bool GetValue(Engine engine, object item, out JsValue jsItem, bool isMapReduce = false)
        {
            jsItem = null;
            string   changeVector = null;
            DateTime?lastModified = null;

            switch (item)
            {
            case DynamicBlittableJson dbj:
                var id = dbj.GetId();
                if (isMapReduce == false && id == DynamicNullObject.Null)
                {
                    return(false);
                }

                dbj.EnsureMetadata();

                if (dbj.TryGetDocument(out var doc))
                {
                    jsItem = new BlittableObjectInstance(engine, null, dbj.BlittableJson, doc);
                }
                else
                {
                    if (dbj[Constants.Documents.Metadata.LastModified] is DateTime lm)
                    {
                        lastModified = lm;
                    }

                    if (dbj[Constants.Documents.Metadata.ChangeVector] is string cv)
                    {
                        changeVector = cv;
                    }

                    jsItem = new BlittableObjectInstance(engine, null, dbj.BlittableJson, id, lastModified, changeVector);
                }

                return(true);

            case DynamicTimeSeriesSegment dtss:
                jsItem = new TimeSeriesSegmentObjectInstance(engine, dtss);
                return(true);

            case DynamicCounterEntry dce:
                jsItem = new CounterEntryObjectInstance(engine, dce);
                return(true);

            case BlittableJsonReaderObject bjro:
                //This is the case for map-reduce
                jsItem = new BlittableObjectInstance(engine, null, bjro, null, null, null);
                return(true);
            }

            return(false);
        }
Ejemplo n.º 2
0
        public static bool GetValue(Engine engine, object item, out JsValue jsItem, bool isMapReduce = false)
        {
            jsItem = null;
            string   changeVector = null;
            DateTime?lastModified = null;

            if (!(item is DynamicBlittableJson dbj))
            {
                //This is the case for map-reduce
                if (item is BlittableJsonReaderObject bjr)
                {
                    jsItem = new BlittableObjectInstance(engine, null, bjr, null, null, null);
                    return(true);
                }
                return(false);
            }
            var id = dbj.GetId();

            if (isMapReduce == false && id == DynamicNullObject.Null)
            {
                return(false);
            }

            dbj.EnsureMetadata();

            if (dbj.TryGetDocument(out var doc))
            {
                jsItem = new BlittableObjectInstance(engine, null, dbj.BlittableJson, doc);
            }
            else
            {
                if (dbj[Constants.Documents.Metadata.LastModified] is DateTime lm)
                {
                    lastModified = lm;
                }

                if (dbj[Constants.Documents.Metadata.ChangeVector] is string cv)
                {
                    changeVector = cv;
                }

                jsItem = new BlittableObjectInstance(engine, null, dbj.BlittableJson, id, lastModified, changeVector);
            }

            return(true);
        }
Ejemplo n.º 3
0
        public static bool GetValue(Engine engine, object item, out JsValue jsItem, bool isMapReduce = false)
        {
            jsItem = null;
            if (!(item is DynamicBlittableJson dbj))
            {
                //This is the case for map-reduce
                if (item is BlittableJsonReaderObject bjr)
                {
                    jsItem = new BlittableObjectInstance(engine, null, bjr, null, null);
                    return(true);
                }
                return(false);
            }
            var id = dbj.GetId();

            if (isMapReduce == false && id == DynamicNullObject.Null)
            {
                return(false);
            }
            jsItem = new BlittableObjectInstance(engine, null, dbj.BlittableJson, id, null);
            return(true);
        }