public void RunInTransaction(Action inTransaction) { using (Connection.Lock()) { Connection.RunInTransaction(inTransaction); } }
public void UpdateToLatestVersion() { var context = Mvx.Resolve <UpdateContext>(); context.Connection = _connection; var version = GetCurrentVersion(); var updates = GetPendingUpdates(version); foreach (var update in updates) { var meta = update.Item2; var code = update.Item1; Trace($"Applying updated #{meta.Version} [{meta.Tag}]..."); using (_connection.Lock()) { _connection.RunInTransaction(() => { code.Apply(context); var row = new VersionRow { Tag = meta.Tag, Timestamp = new DateTime(), Version = meta.Version }; _connection.Insert(row); }); } Trace($"Update #{meta.Version} [{meta.Tag}] was successfully applied."); } }
public void RemoveRecipe(int id) { if (_isDisposed) { throw new ObjectDisposedException(nameof(RecipePersistenceService)); } using (_connection.Lock()) { _connection.RunInTransaction(() => { //Remove all fields var mapping = _connection.GetMapping <RecipeTextFieldRow>(); _connection.Execute($"DELETE FROM {mapping.TableName} WHERE RecipeId = ?", id); //Remove recipe _connection.Delete <RecipeRow>(id); }); } }