Esempio n. 1
0
        /// <summary>
        /// Выполняет проверку наличия объектов в БД
        /// </summary>
        /// <param name="connection">Соединение с БД</param>
        /// <param name="configFileName">Полное имя файла конфигурации</param>
        /// <returns>Результаты проверки</returns>
        public static DbCheckResult Check(IDbConnection connection, string configFileName)
        {
            DbCheckConfig config = new DbCheckConfig(configFileName);

            DbObject[] dbobjects = config.DbObjects;

            DbCheckResult result = new DbCheckResult(
                true, new StringCollection());

            using (DbCheckerCache cache = new DbCheckerCache(connection, config))
            {
                foreach (DbObject dbobj in dbobjects)
                {
                    IDbChecker dbchecker = cache[dbobj];

                    if (!dbchecker.IsDbObjectExists(dbobj))
                    {
                        result.Success = false;
                        result.Errors.Add(dbobj.GetErrorMessage());
                    }
                }
            }

            return(result);
        }
Esempio n. 2
0
 /// <summary>
 /// Возвращает экземпляр IDbChecker по описанию объекта в БД.
 /// Если соответствующий экземпляр IDbCheck еще не создавался,
 ///  то он создается.
 /// </summary>
 public IDbChecker this[DbObject dbobj]
 {
     get
     {
         Type       key       = dbobj.GetType();
         IDbChecker dbchecker = this.m_oHashtable[key] as IDbChecker;
         if (dbchecker == null)
         {
             dbchecker = createDbChecker(dbobj);
             this.m_oHashtable[key] = dbchecker;
         }
         return(dbchecker);
     }
 }