Example #1
0
        public void Commit(Photo[] items)
        {
            uint timer = Log.DebugTimerStart();
            // Only use a transaction for multiple saves. Avoids recursive transactions.

            // TODO.
            bool use_transactions = true;             //!Database.InTransaction && items.Length > 1;

            //if (use_transactions)
            //      Database.BeginTransaction ();

            // FIXME: this hack is used, because HyenaSqliteConnection does not support
            // the InTransaction propery
            try {
                Database.BeginTransaction();
            } catch {
                use_transactions = false;
            }

            var changes = new PhotosChanges();

            foreach (DbItem item in items)
            {
                changes |= Update((Photo)item);
            }

            if (use_transactions)
            {
                Database.CommitTransaction();
            }

            EmitChanged(items, new PhotoEventArgs(items, changes));
            Log.DebugTimerPrint(timer, "Commit took {0}");
        }
Example #2
0
    public void Commit(Photo [] items)
    {
        uint timer = Log.DebugTimerStart();
        // Only use a transaction for multiple saves. Avoids recursive transactions.
        bool use_transactions = !Database.InTransaction && items.Length > 1;

        if (use_transactions)
        {
            Database.BeginTransaction();
        }

        PhotosChanges changes = new PhotosChanges();

        foreach (DbItem item in items)
        {
            changes |= Update((Photo)item);
        }

        if (use_transactions)
        {
            Database.CommitTransaction();
        }

        EmitChanged(items, new PhotoEventArgs(items, changes));
        Log.DebugTimerPrint(timer, "Commit took {0}");
    }
		public PhotoEventArgs (Photo[] photos, PhotosChanges changes) : base (photos)
		{
			this.changes = changes;
		}
		public PhotoEventArgs (Photo photo, PhotosChanges changes) : this (new Photo[] {photo}, changes)
		{
		}
Example #5
0
 public PhotoEventArgs(Photo[] photos, PhotosChanges changes) : base(photos)
 {
     Changes = changes;
 }
Example #6
0
 public PhotoEventArgs(Photo photo, PhotosChanges changes) : this(new[] { photo }, changes)
 {
 }