Example #1
0
        private T Deserialize(JObject result)
        {
            var metadata = result.Value <JObject>("@metadata");

            result.Remove("@metadata");
            if (projectionFields != null && projectionFields.Length > 0 ||           // we asked for a projection directly from the index
                metadata == null)                                                                                        // we aren't querying a document, we are probably querying a map reduce index result
            {
                return((T)session.Conventions.CreateSerializer().Deserialize(new JTokenReader(result), typeof(T)));
            }
            return(session.TrackEntity <T>(metadata.Value <string>("@id"),
                                           result,
                                           metadata));
        }
        private T Deserialize(JObject result)
        {
            var metadata = result.Value <JObject>("@metadata");

            if (projectionFields != null && projectionFields.Length > 0 ||           // we asked for a projection directly from the index
                metadata == null)                                                                                        // we aren't querying a document, we are probably querying a map reduce index result
            {
                return((T) new JsonSerializer
                {
                    ContractResolver = session.Conventions.JsonContractResolver,
                    ConstructorHandling = ConstructorHandling.AllowNonPublicDefaultConstructor,
                    Converters =
                    {
                        new JsonEnumConverter(),
                    }
                }.Deserialize(new JTokenReader(result), typeof(T)));
            }
            return(session.TrackEntity <T>(metadata.Value <string>("@id"),
                                           result,
                                           metadata));
        }