Ejemplo n.º 1
0
 private string getKeyForDatabase(IDatabaseBase database)
 {
     if (!databases.ContainsValue(database))
     {
         throw new Exception();
     }
     return(databases.FirstOrDefault(d => (d.Value == database)).Key);
 }
Ejemplo n.º 2
0
 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);
 }
Ejemplo n.º 3
0
 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);
 }
Ejemplo n.º 4
0
        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;
            }
        }
Ejemplo n.º 5
0
 private DatabaseFile getFile(IDatabaseBase database, DatabaseFile.DatabaseFileMode fileMode) => new(getPathForDatabase(database), fileMode);
Ejemplo n.º 6
0
 public DatabaseFile GetFileToRead(IDatabaseBase database) => getFile(database, DatabaseFile.DatabaseFileMode.Read);
Ejemplo n.º 7
0
 public DatabaseFile GetFileToWrite(IDatabaseBase database) => getFile(database, DatabaseFile.DatabaseFileMode.Write);
Ejemplo n.º 8
0
        public DatabaseFile GetFileToRead(IDatabaseBase database)
        {
            string key = getKeyForDatabase(database);

            return(new DatabaseFile(key + ".db", DatabaseFile.DatabaseFileMode.Read));
        }
Ejemplo n.º 9
0
 public static string GetName(this IDatabaseBase database)
 => database.GetType().GetAttribute <DatabaseNameAttribute>()?.Name;