public static bool AddErrorMessage(SqlException exception, Action <string> addErrorMessage, long id, string originalTableName)
 {
     using (var db = new DBDataContext(SpecificInstances.DbFactory.CreateConnection()))
     {
         var resolver = new ReferencesConflictResolver(db);
         return(resolver.Resolve(exception, addErrorMessage, id, originalTableName));
     }
 }
        public static string GetTableHeader(string projectCode, string tableName, string version, string publicKeyToken)
        {
            var cacheKey = tableName + ":" + LocalizationHelper.IsCultureKZ;

            if (ProjectHeadersCache.ContainsKey(cacheKey))
            {
                return(ProjectHeadersCache[cacheKey]);
            }

            string header = null;
            var    type   = BuildManager.GetType(
                string.Format(
                    "{1}.Properties.{0}Resources, {1}, Version={2}, Culture=neutral, PublicKeyToken={3}",
                    tableName,
                    projectCode,
                    version ?? InitializerSection.GetSection().DefaultVersion,
                    publicKeyToken ?? InitializerSection.GetSection().DefaultPublicKeyToken),
                false,
                true);

            var property = type?.GetProperty("Header", BindingFlags.Static | BindingFlags.Public);

            if (property != null)
            {
                header = (string)property.GetValue(null, new object[0]);
            }

            if (string.IsNullOrEmpty(header))
            {
                using (var db = new DBDataContext(SpecificInstances.DbFactory.CreateConnection()))
                {
                    header = CacheQueries.GetNameCached <MON_RequestTable, string, string>(
                        db,
                        tableName,
                        (r, value) => r.TableCode == value,
                        r => r.TableName);
                }
            }

            if (string.IsNullOrEmpty(header))
            {
                header = tableName;
            }

            return(ProjectHeadersCache[cacheKey] = header);
        }
        public static string GetProjectCode(string tableName)
        {
            if (ProjectCodesCache.ContainsKey(tableName))
            {
                return(ProjectCodesCache[tableName]);
            }

            string projectCode;

            using (var db = new DBDataContext(SpecificInstances.DbFactory.CreateConnection()))
            {
                projectCode = CacheQueries.ExecuteFunction <MON_RequestTable, string, string>(
                    db,
                    tableName,
                    (r, value) => r.TableCode == value,
                    r => r.PackageCode);
            }

            return(ProjectCodesCache[tableName] = projectCode);
        }
 private ReferencesConflictResolver(DBDataContext db)
 {
     this.db = db;
 }