Example #1
0
        public static void Save(object obj, string path, Format format)
        {
            path = GetPath(path);
            var tempPath = Path.Combine(Path.GetDirectoryName(path), "$" + Path.GetFileName(path) + ".tmp");

#if BSON
            if (format == Format.Bson)
            {
                throw Sanity.NotImplementedException();
            }
#endif

#if PROTOBUF
            if (format == Format.Protobuf)
            {
                path = GetPath(path);
                using (var stream = File.Open(tempPath, FileMode.Create, FileAccess.Write, FileShare.Delete))
                {
                    ProtobufSerializeOfTMethod.MakeGenericMethod(obj.GetType()).Invoke(null, new[] { stream, obj });
                }
                File.Delete(path);
                File.Move(tempPath, path);
                return;
            }
#endif



            {
                path = GetPath(path);
                using (var stream = File.Open(tempPath, FileMode.Create, FileAccess.Write, FileShare.Delete))
                    using (var sw = new StreamWriter(stream, Encoding.UTF8))
                    {
                        var js = new JsonSerializer();
#if !STANDALONE
                        js.AddAwdeeConverters();
#endif
                        js.Formatting = format == Format.CompactJson ? Formatting.None : Formatting.Indented;
                        js.Serialize(sw, obj);
                    }
                File.Delete(path);
                File.Move(tempPath, path);
                return;
            }
        }
Example #2
0
        internal static WebFile FromDbValue(WebFile file, string content, TypeBase type)
        {
            /*if (url == null) return null;
             * var u = url.AsUri();
             * var file =
             *  type == TypeBase.WebImage ? WebImage.FromUrl(u) :
             *  type == TypeBase.WebAudio ? WebAudio.FromUrl(u) :
             *  type == TypeBase.WebVideo ? WebVideo.FromUrl(u) :
             *  WebFile.FromUrl(u);
             */
            if (content != null)
            {
                var serializer = new JsonSerializer();

                serializer.AddAwdeeConverters();
                using (var sr = new StringReader(content))
                    using (var jr = Utils.CreateJsonReader(sr))
                    {
                        serializer.Deserialize(jr, type.NativeType);
                    }
            }

            return(file);
        }