Files
Library/OwnChar/Data/IDataProvider.cs
Schedel Pascal 9e77090bd4 completely rework IDataProvider
- make it more dynamic
- prevent incremental method count increase
2024-07-09 10:13:38 +02:00

27 lines
910 B
C#

using OwnChar.Model;
namespace OwnChar.Data;
public interface IDataProvider
{
bool IsInitialized();
void SetInitialized();
bool SaveDatabase();
// Model
T? Create<T>() where T : OwnCharObject;
bool Save<T>(T obj) where T : OwnCharObject;
bool Delete<T>(T obj) where T : OwnCharObject;
IQueryable<T>? GetAll<T>() where T : OwnCharObject;
// Hierarchy
bool SetChild(OwnCharObject parent, OwnCharObject? child, string property, DataProviderSetAction action);
T? GetChild<T>(OwnCharObject parent, string property) where T : OwnCharObject;
IQueryable<T>? GetChilds<T>(OwnCharObject parent, string property) where T : OwnCharObject;
T? GetParent<T>(OwnCharObject child, string property) where T : OwnCharObject;
// Explicite getters
UserAccount? GetUserAccount(string username, string password);
UserProfile? GetUserProfile(string username);
}