/// <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); }
/// <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); } }