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}"); }
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) { }
public PhotoEventArgs(Photo[] photos, PhotosChanges changes) : base(photos) { Changes = changes; }
public PhotoEventArgs(Photo photo, PhotosChanges changes) : this(new[] { photo }, changes) { }