示例#1
0
        internal static string GetModificationParseRule(string path)
        {
            string s = path.Contains(Path.DirectorySeparatorChar)
                                ? path.Substring(path.LastIndexOf(Path.DirectorySeparatorChar) + 1)
                                : path;

            return(!Databases.ContainsKey(s) ? "" : Databases[s].ModificationParseRule);
        }
示例#2
0
        internal static string GetTaxonomyId(string path)
        {
            string s = path.Contains(Path.DirectorySeparatorChar)
                                ? path.Substring(path.LastIndexOf(Path.DirectorySeparatorChar) + 1)
                                : path;

            return(!Databases.ContainsKey(s) ? "" : Databases[s].Taxid);
        }
示例#3
0
        internal static bool ContainsDatabase(string path)
        {
            string s = path.Contains(Path.DirectorySeparatorChar)
                                ? path.Substring(path.LastIndexOf(Path.DirectorySeparatorChar) + 1)
                                : path;

            return(Databases.ContainsKey(s));
        }
示例#4
0
		public static string GetIdentifierParseRule(string path){
			string s = path.Contains(Path.DirectorySeparatorChar) ? path.Substring(path.LastIndexOf(Path.DirectorySeparatorChar) + 1) : path;
			string pr = ReadParseRuleFromFile(path);
			if (pr != null){
				return pr;
			}
			return !Databases.ContainsKey(s) ? ">(.*)" : Databases[s].IdentifierParseRule;
		}
示例#5
0
        public static string GetIdentifierParseRule(string path)
        {
            string s  = path.Contains("\\") ? path.Substring(path.LastIndexOf('\\') + 1) : path;
            string pr = ReadParseRuleFromFile(path);

            if (pr != null)
            {
                return(pr);
            }
            return(!Databases.ContainsKey(s) ? ">([^ ]*)" : Databases[s].IdentifierParseRule);
        }
示例#6
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="ConnectionUsing">Connection string or name of the database
 /// connection string (if already defined)</param>
 public MicroORM(string ConnectionUsing = "Default")
     : base("", "", CommandType.Text)
 {
     MappingsUsing = new List <IMapping>();
     if (Databases.ContainsKey(ConnectionUsing))
     {
         this.Connection.ConnectionString = Databases[ConnectionUsing].Connection;
         DatabaseUsing = ConnectionUsing;
     }
     else
     {
         this.Connection.ConnectionString = ConnectionUsing;
         DatabaseUsing = "Default";
     }
 }
示例#7
0
文件: DbHelper.cs 项目: yuanbeier/FZY
        public static Database GetDatabase(string name)
        {
            // lock (Databases)
            {
                Database result = null;
                if (!Databases.ContainsKey(name))
                {
                    result = CreateDatabase(name);

                    Databases[name] = result;
                }
                else
                {
                    result = Databases[name];
                }
                return(result);
            }
        }
示例#8
0
        /// <summary>
        /// Returns an <see cref="AppDatabase"/> instance unique to the current calling thread.
        /// <para>If no <see cref="AppDatabase"/> exist yet for the current thread, a new instance will be created.</para>
        /// </summary>
        /// <seealso cref="DisposeDatabases"/>
        public static AppDatabase GetDatabase()
        {
            // Lock the databases property to prevent conflicts from the DisposeDatabases method
            lock (Databases)
            {
                // Get the id of the thread that called this method
                var threadId = Thread.CurrentThread.ManagedThreadId;

                // Create a new AppDatabase if it doesn't exist yet
                if (!Databases.ContainsKey(threadId))
                {
                    Databases.Add(threadId, new AppDatabase());
                    Program.Log.Fine($"Opened connection to '{Databases[threadId].Connection.DataSource}'.");
                }

                // Return an AppDatabase from the cache
                return(Databases[threadId]);
            }
        }
示例#9
0
        private IMongoDatabase GetDatabase(IDatabaseSettings dbSettings)
        {
            IMongoDatabase database = null;

            _databaseLocker.EnterReadLock();
            try
            {
                if (Databases.ContainsKey(dbSettings.DatabaseName))
                {
                    database = Databases[dbSettings.DatabaseName];
                }
                else
                {
                    _databaseLocker.ExitReadLock();
                    _databaseLocker.EnterWriteLock();
                    try
                    {
                        if (!MongoClients.ContainsKey(dbSettings.ConnectionString))
                        {
                            database = GetClient(dbSettings.ConnectionString).GetDatabase(dbSettings.DatabaseName);
                            Databases.Add(dbSettings.ConnectionString, database);
                        }
                        database = Databases[dbSettings.ConnectionString];
                    }
                    finally
                    {
                        _databaseLocker.ExitWriteLock();
                    }
                }
            }
            finally
            {
                if (_databaseLocker.IsReadLockHeld)
                {
                    _databaseLocker.ExitReadLock();
                }
            }
            return(database);
        }
示例#10
0
        public static bool ContainsDatabase(string path)
        {
            string s = path.Contains("\\") ? path.Substring(path.LastIndexOf('\\') + 1) : path;

            return(Databases.ContainsKey(s));
        }
示例#11
0
        public static string GetTaxonomyId(string path)
        {
            string s = path.Contains("\\") ? path.Substring(path.LastIndexOf('\\') + 1) : path;

            return(!Databases.ContainsKey(s) ? "" : Databases[s].Taxid);
        }
示例#12
0
        public static string GetModificationParseRule(string path)
        {
            string s = path.Contains("\\") ? path.Substring(path.LastIndexOf('\\') + 1) : path;

            return(!Databases.ContainsKey(s) ? "" : Databases[s].ModificationParseRule);
        }
示例#13
0
		public static string GetVariationParseRule(string path){
			string s = path.Contains(Path.DirectorySeparatorChar) ? path.Substring(path.LastIndexOf(Path.DirectorySeparatorChar) + 1) : path;
			return !Databases.ContainsKey(s) ? "" : Databases[s].VariationParseRule;
		}