diff --git a/Pilz/Data/DataManager.cs b/Pilz/Data/DataManager.cs index ba89d19..d08f806 100644 --- a/Pilz/Data/DataManager.cs +++ b/Pilz/Data/DataManager.cs @@ -97,13 +97,24 @@ public abstract class DataManager : IDataManager public virtual bool Find(int id, [NotNullWhen(true)] out T? obj) where T : class, IDataObject { - if (FindEntity(id) is not T t) + if (Find(id) is T t) { - obj = default; - return false; + obj = t; + return true; } - obj = t; - return true; + obj = default; + return false; + } + + public virtual bool Find(int? id, [NotNullWhen(true)] out T? obj) where T : class, IDataObject + { + if (Find(id) is T t) + { + obj = t; + return true; + } + obj = default; + return false; } public virtual void Delete(int id) where T : class, IDataObject diff --git a/Pilz/Data/IDataManager.cs b/Pilz/Data/IDataManager.cs index 3741493..038609b 100644 --- a/Pilz/Data/IDataManager.cs +++ b/Pilz/Data/IDataManager.cs @@ -11,6 +11,7 @@ public interface IDataManager T? Find(int id) where T : class, IDataObject; bool Find(int id, [NotNullWhen(true)] out T? obj) where T : class, IDataObject; T? Find(int? id) where T : class, IDataObject; + bool Find(int? id, [NotNullWhen(true)] out T? obj) where T : class, IDataObject; T FindOrNew(int id) where T : class, IDataObject; bool FindOrNew(int id, [NotNullWhen(true)] out T? obj) where T : class, IDataObject; T FindOrNew(int? id) where T : class, IDataObject;