Example #1
0
        /// <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);
        }
    }
Example #3
0
        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> ());
        }
Example #4
0
 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());
     }
 }
Example #5
0
        /// <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();
        }
Example #6
0
 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);
 }
Example #7
0
 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);
Example #9
0
 protected override bool UpdateRevision(UnsavedRevision rev)
 {
     rev.Properties ["type"] = "CouchbaseSphere";
     EmitBaseData(rev, SaveData.Position | SaveData.Color);
     return(true);
 }