Esempio n. 1
0
 protected object Deserialize(JsonReader reader, Type type)
 {
     using (RavenJTokenReader tokenReader = new RavenJTokenReader(RavenJToken.ReadFrom(reader)))
     {
         return(serializer.Deserialize(tokenReader, type));
     }
 }
Esempio n. 2
0
        private T DeserializedResult <T>(RavenJObject result)
        {
            if (projectionFields != null && projectionFields.Length == 1)             // we only select a single field
            {
                var type = typeof(T);
                if (type == typeof(string) || typeof(T).IsValueType || typeof(T).IsEnum)
                {
                    return(result.Value <T>(projectionFields[0]));
                }
            }

            var jsonSerializer    = sessionOperations.Conventions.CreateSerializer();
            var ravenJTokenReader = new RavenJTokenReader(result);

            var resultTypeString = result.Value <string>("$type");

            if (string.IsNullOrEmpty(resultTypeString))
            {
                return((T)jsonSerializer.Deserialize(ravenJTokenReader, typeof(T)));
            }

            var resultType = Type.GetType(resultTypeString, false);

            if (resultType == null)            // couldn't find the type, let us give it our best shot
            {
                return((T)jsonSerializer.Deserialize(ravenJTokenReader, typeof(T)));
            }

            return((T)jsonSerializer.Deserialize(ravenJTokenReader, resultType));
        }
Esempio n. 3
0
 public virtual object Deserialize(Stream stream, System.Type type)
 {
     using (StreamReader r = new StreamReader(stream))
         using (var jsonReader = new JsonTextReader(r))
             using (RavenJTokenReader tokenReader = new RavenJTokenReader(RavenJToken.ReadFrom(jsonReader)))
             {
                 return(serializer.Deserialize(tokenReader, type));
             }
 }
Esempio n. 4
0
 protected override object DeserializeMessage(Stream input)
 {
     using (var streamReader = new StreamReader(input))
         using (var jsonReader = new JsonTextReader(streamReader))
             using (RavenJTokenReader tokenReader = new RavenJTokenReader(RavenJToken.ReadFrom(jsonReader)))
             {
                 return(serializer.Deserialize(tokenReader));
             }
 }
Esempio n. 5
0
        public void FileHeaderSerialization()
        {
            var metadata = new RavenJObject {
                { Constants.LastModified, "2014-07-07T12:00:00.0000000" }, { Constants.FileSystem.RavenFsSize, "128" }
            };
            var fileHeader = new FileHeader("test1.file", metadata);

            var serializedValue = JsonExtensions.ToJObject(fileHeader);

            var jr = new RavenJTokenReader(serializedValue);
            var deserializedValue = JsonExtensions.CreateDefaultJsonSerializer().Deserialize <FileHeader>(jr);

            Assert.NotNull(deserializedValue);
            Assert.Equal(fileHeader.Name, deserializedValue.Name);
            Assert.Equal(fileHeader.LastModified, deserializedValue.LastModified);
        }
Esempio n. 6
0
        public void ConflictNotificationSerialization()
        {
            var metadata = new RavenJObject {
                { Constants.LastModified, "2014-07-07T12:00:00.0000000" }, { Constants.FileSystem.RavenFsSize, "128" }
            };
            var fileHeader   = new FileHeader("test1.file", metadata);
            var notification = new ConflictNotification()
            {
                FileName = "test1.file", SourceServerUrl = "http://destination", RemoteFileHeader = fileHeader, Status = ConflictStatus.Detected
            };

            var serializedValue = JsonExtensions.ToJObject(notification);

            var jr = new RavenJTokenReader(serializedValue);
            var deserializedValue = JsonExtensions.CreateDefaultJsonSerializer().Deserialize <ConflictNotification>(jr);

            Assert.NotNull(deserializedValue);
        }
Esempio n. 7
0
        private T DeserializedResult <T>(RavenJObject result)
        {
            var type = typeof(T);

            if (type == typeof(string) || typeof(T).IsValueType() || typeof(T).IsEnum())
            {
                if (projectionFields != null && projectionFields.Length == 1) // we only select a single field
                {
                    return(result.Value <T>(projectionFields[0]));
                }
                switch (result.Count)
                {
                case 1:
                    return(result.Value <T>(result.Keys.First()));

                case 2:
                    if (result.ContainsKey(Constants.Metadata))
                    {
                        return(result.Value <T>(result.Keys.First(x => x != Constants.Metadata)));
                    }
                    break;
                }
            }

            var jsonSerializer    = sessionOperations.Conventions.CreateSerializer();
            var ravenJTokenReader = new RavenJTokenReader(result);

            var resultTypeString = result.Value <string>("$type");

            if (string.IsNullOrEmpty(resultTypeString))
            {
                return((T)jsonSerializer.Deserialize(ravenJTokenReader, typeof(T)));
            }

            var resultType = Type.GetType(resultTypeString, false);

            if (resultType == null) // couldn't find the type, let us give it our best shot
            {
                return((T)jsonSerializer.Deserialize(ravenJTokenReader, typeof(T)));
            }

            return((T)jsonSerializer.Deserialize(ravenJTokenReader, resultType));
        }