private string getKeyForDatabase(IDatabaseBase database) { if (!databases.ContainsValue(database)) { throw new Exception(); } return(databases.FirstOrDefault(d => (d.Value == database)).Key); }
public static string GetName(this IDatabaseBase database) { object[] databaseNameAttributes = database.GetType().GetCustomAttributes(typeof(DatabaseNameAttribute), true); if (databaseNameAttributes.Length <= 0) { return(null); } return((databaseNameAttributes[0] as DatabaseNameAttribute)?.Name); }
public void RegisterSingletonDatabase(IDatabaseBase database, string key) { if (string.IsNullOrWhiteSpace(key)) { throw new ArgumentException(); } if (databases.ContainsKey(key)) { throw new Exception(); } databases.Add(key, database); }
public DatabasePersister(IDatabaseBase database) { this.database = database; PolymorphDatabaseAttribute polymorphAttr = database.GetType().GetCustomAttribute <PolymorphDatabaseAttribute>(); if (polymorphAttr != null) { isPolymorph = true; typeNameConverter = polymorphAttr.Converter; } XmlTagNamesAttribute tagNameAttr = database.GetType().GetCustomAttribute <XmlTagNamesAttribute>(); if (tagNameAttr != null) { rootTag = tagNameAttr.RootTag; itemTag = tagNameAttr.ItemTag; } }
private DatabaseFile getFile(IDatabaseBase database, DatabaseFile.DatabaseFileMode fileMode) => new(getPathForDatabase(database), fileMode);
public DatabaseFile GetFileToRead(IDatabaseBase database) => getFile(database, DatabaseFile.DatabaseFileMode.Read);
public DatabaseFile GetFileToWrite(IDatabaseBase database) => getFile(database, DatabaseFile.DatabaseFileMode.Write);
public DatabaseFile GetFileToRead(IDatabaseBase database) { string key = getKeyForDatabase(database); return(new DatabaseFile(key + ".db", DatabaseFile.DatabaseFileMode.Read)); }
public static string GetName(this IDatabaseBase database) => database.GetType().GetAttribute <DatabaseNameAttribute>()?.Name;