public void Delete(object id, bool fireEvents = true) { DeletingEntityEventArgs args = null; if (fireEvents) { var existing = Get(id); args = new DeletingEntityEventArgs { Entity = existing }; Fluidity.OnDeletingEntity(args); if (args.Cancel) { return; } } var query = new Sql(_collection.DeletedProperty != null ? $"UPDATE {_collection.EntityType.GetTableName()} SET {_collection.DeletedProperty.GetColumnName()} = 1 WHERE {_collection.IdProperty.GetColumnName()} = @0" : $"DELETE FROM {_collection.EntityType.GetTableName()} WHERE {_collection.IdProperty.GetColumnName()} = @0", id); Db.Execute(query); if (fireEvents) { Fluidity.OnDeletedEntity(args); } }
/// <summary> /// Deletes the entity with the specified identifier. /// </summary> /// <param name="id">The identifier.</param> /// <param name="fireEvents">if set to <c>true</c> fire events.</param> public virtual void Delete(TId id, bool fireEvents = true) { DeletingEntityEventArgs args = null; if (fireEvents) { var existing = Get(id); args = new DeletingEntityEventArgs { Entity = existing }; Fluidity.OnDeletingEntity(args); if (args.Cancel) { return; } } DeleteImpl(id); if (fireEvents) { Fluidity.OnDeletedEntity(args); } }
public object Save(object entity, bool fireEvents = true) { SavingEntityEventArgs args = null; if (fireEvents) { var existing = Get(entity.GetPropertyValue(_collection.IdProperty)); args = new SavingEntityEventArgs { Entity = new BeforeAndAfter <object> { Before = existing, After = entity } }; Fluidity.OnSavingEntity(args); if (args.Cancel) { return(args.Entity.After); } entity = args.Entity.After; } Db.Save(args.Entity.After); if (fireEvents) { Fluidity.OnSavedEntity(args); entity = args.Entity.After; } return(entity); }
/// <summary> /// Saves the specified entity. /// </summary> /// <param name="entity">The entity.</param> /// <param name="fireEvents">if set to <c>true</c> fire events.</param> /// <returns>The entity.</returns> public virtual TEntity Save(TEntity entity, bool fireEvents = true) { SavingEntityEventArgs args = null; if (fireEvents) { var existing = Get(GetId(entity)); args = new SavingEntityEventArgs { Entity = new BeforeAndAfter <object> { Before = existing, After = entity } }; Fluidity.OnSavingEntity(args); if (args.Cancel) { return((TEntity)args.Entity.After); } entity = (TEntity)args.Entity.After; } entity = SaveImpl(entity); if (fireEvents) { Fluidity.OnSavedEntity(args); entity = (TEntity)args.Entity.After; } return(entity); }