using System.Threading.Tasks; using zero.Communication; using zero.Models; namespace zero.Sqlite; public interface IEntityModifiedHandler : IHandler { Task Saved(T model, bool update) where T : ZeroIdEntity, new() => update ? Updated(model) : Created(model); Task Created(T model) where T : ZeroIdEntity, new(); Task Updated(T model) where T : ZeroIdEntity, new(); Task Deleted(T model) where T : ZeroIdEntity, new(); } public class EmptyEntityModifiedHandler : IEntityModifiedHandler { public Task Created(T model) where T : ZeroIdEntity, new() => Task.CompletedTask; public Task Updated(T model) where T : ZeroIdEntity, new() => Task.CompletedTask; public Task Deleted(T model) where T : ZeroIdEntity, new() => Task.CompletedTask; }