/// <exception cref="Couchbase.Lite.CouchbaseLiteException"></exception> public static Couchbase.Lite.Document CreateTask(Database database, string title, Bitmap image, string listId) { SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'" ); Calendar calendar = GregorianCalendar.GetInstance(); string currentTimeString = dateFormatter.Format(calendar.GetTime()); IDictionary <string, object> properties = new Dictionary <string, object>(); properties.Put("type", DocType); properties.Put("title", title); properties.Put("checked", false); properties.Put("created_at", currentTimeString); properties.Put("list_id", listId); Couchbase.Lite.Document document = database.CreateDocument(); UnsavedRevision revision = document.CreateRevision(); revision.SetUserProperties(properties); if (image != null) { ByteArrayOutputStream @out = new ByteArrayOutputStream(); image.Compress(Bitmap.CompressFormat.Jpeg, 50, @out); ByteArrayInputStream @in = new ByteArrayInputStream(@out.ToByteArray()); revision.SetAttachment("image", "image/jpg", @in); } revision.Save(); return(document); }
protected void EmitBaseData(UnsavedRevision rev, SaveData dataToSave) { if (dataToSave.HasFlag(SaveData.PositionXY)) { var pos = transform.position; rev.Properties ["CouchbaseObject.Position.X"] = pos.x; rev.Properties ["CouchbaseObject.Position.Y"] = pos.y; if (dataToSave.HasFlag(SaveData.PositionZ)) { rev.Properties ["CouchbaseObject.Position.Z"] = pos.z; } } if (dataToSave.HasFlag(SaveData.Rotation)) { transform.rotation.InsertIntoDictionary(rev.Properties, ROTATION_KEYS); } if (dataToSave.HasFlag(SaveData.Scale)) { transform.localScale.InsertIntoDictionary(rev.Properties, SCALE_KEYS); } if (dataToSave.HasFlag(SaveData.Color)) { gameObject.GetComponent <MeshRenderer>().material.color.InsertIntoDictionary(rev.Properties, COLOR_KEYS); } }
public void TestStoreImagesList() { Image img = Utils.LoadImageFromFile(); StorableImageTest t = new StorableImageTest { Images = new List <Image> { img, img, img }, ID = Guid.NewGuid(), }; Document doc = db.CreateDocument(); UnsavedRevision rev = doc.CreateRevision(); SerializationContext context = new SerializationContext(db, t.GetType()); JObject jo = DocumentsSerializer.SerializeObject(t, rev, context); int i = 0; foreach (string name in rev.AttachmentNames) { i++; Assert.AreEqual("Images_" + i, name); } Assert.AreEqual(3, i); Assert.AreEqual("attachment::Images_1", jo ["Images"] [0].Value <string> ()); Assert.AreEqual("attachment::Images_2", jo ["Images"] [1].Value <string> ()); Assert.AreEqual("attachment::Images_3", jo ["Images"] [2].Value <string> ()); }
static public void AddImageAttachment(UnsavedRevision rev, string name, Image img) { if (img == null) { if (rev.AttachmentNames.Contains(name)) { rev.RemoveAttachment(name); } } else { rev.SetAttachment(name, "image/png", img.Serialize()); } }
/// <exception cref="Couchbase.Lite.CouchbaseLiteException"></exception> public static void AttachImage(Couchbase.Lite.Document task, Bitmap image) { if (task == null || image == null) { return; } UnsavedRevision revision = task.CreateRevision(); ByteArrayOutputStream @out = new ByteArrayOutputStream(); image.Compress(Bitmap.CompressFormat.Jpeg, 50, @out); ByteArrayInputStream @in = new ByteArrayInputStream(@out.ToByteArray()); revision.SetAttachment("image", "image/jpg", @in); revision.Save(); }
public void TestSerializeStorableByReference() { StorableImageTest img = new StorableImageTest { ID = Guid.NewGuid (), Image1 = Utils.LoadImageFromFile (), }; StorableContainerTest cont = new StorableContainerTest { ID = Guid.NewGuid (), Image = img, }; Document doc = db.CreateDocument (); UnsavedRevision rev = doc.CreateRevision (); JObject jo = DocumentsSerializer.SerializeObject (cont, rev, db, null); Assert.AreEqual (img.ID, jo ["Image"].Value<Guid> ()); Assert.AreEqual (1, db.DocumentCount); Assert.IsNotNull (storage.Retrieve<StorableImageTest> (img.ID)); rev.Save (); Assert.AreEqual (2, db.DocumentCount); }
public void TestSerializeImages() { Image img = Utils.LoadImageFromFile (); StorableImageTest t = new StorableImageTest { Image1 = img, Image2 = img, ID = Guid.NewGuid (), }; Document doc = db.CreateDocument (); UnsavedRevision rev = doc.CreateRevision (); JObject jo = DocumentsSerializer.SerializeObject (t, rev, db, null); Assert.IsNotNull (jo ["ID"]); Assert.AreEqual ("attachment::Image1_1", jo ["Image1"].Value<string> ()); Assert.AreEqual ("attachment::Image2_1", jo ["Image2"].Value<string> ()); int i = 0; foreach (string name in rev.AttachmentNames) { i++; Assert.AreEqual (string.Format ("Image{0}_1", i), name); } }
protected abstract bool UpdateRevision(UnsavedRevision rev);
protected override bool UpdateRevision(UnsavedRevision rev) { rev.Properties ["type"] = "CouchbaseSphere"; EmitBaseData(rev, SaveData.Position | SaveData.Color); return(true); }