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); }
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); }
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); }