public virtual async Task Delete(string key) { if (_softDeleteEnabled) { var entity = await Get(key); entity.EntityStatus = EntityStatus.Deleted; entity.StatusChangedAt = DateTime.UtcNow; await _provider.PersistAsync(entity); } else { await _provider.DeleteAsync(key); } }