private async Task PostSaveChangesAsync(PreSaveState pss) { Requires.NonNull(pss, nameof(pss)); foreach (var item in pss.DeleteKeysByTableKey.AtomEnumerable) { var e = item.Value; e.State = EntityState.Detached; await SoftDeleteAsync(item.Key, e.Entity.DeleteKey, CurrentUserId); } }
private void PostSaveChanges(PreSaveState pss) { Requires.NonNull(pss, nameof(pss)); foreach (var item in pss.DeleteKeysByTableKey.AtomEnumerable) { var e = item.Value; e.State = EntityState.Detached; SoftDelete(item.Key, e.Entity.DeleteKey, null); } }
private PreSaveState PreSaveChanges() { var pss = new PreSaveState(); EntityList <ISoftDelete>().ForEach(z => { var et = z.Entity.GetType(); if (z.Entity.IsDeleted && z.State != EntityState.Detached) { z.State = EntityState.Modified; var tka = et.GetCustomAttribute <TableKeyAttribute>(); if (tka == null) { throw new Exception($"Developer should have specified the TableKeyAttribute on the entity type = {et.Name}"); } pss.DeleteKeysByTableKey.Add(tka.Key, z); } else if (z.State == EntityState.Deleted) { throw new Exception($"Developer should have used SoftDelete on object type = {et.Name}"); } }); return(pss); }