Exemplo n.º 1
0
		/// <summary>
		/// Atribui a propriedade MaxLength de todos os <see cref="TextBox"/>es da página.
		/// </summary>
		/// <param name="mdCache">O objeto <see cref="DbMetadataCache"/> utilizado para buscar as informações sobre as tabelas</param>
		/// <param name="tableName">O nome da tabela</param>
		public static void SetMaxLengthOnTextBoxes(DbMetadataCache mdCache, string tableName)
		{
			SetMaxLengthOnTextBoxes(Page, mdCache, tableName);
		}
Exemplo n.º 2
0
		/// <summary>
		/// Atribui a propriedade MaxLength de todos os <see cref="TextBox"/>es filhos de um controle.
		/// </summary>
		/// <param name="parent">O controle a partir de onde serão atribuidas as propriedades <c>MaxLength</c>.</param>
		/// <param name="mdCache">O objeto <see cref="DbMetadataCache"/> utilizado para buscar as informações sobre as tabelas</param>
		/// <param name="tableName">O nome da tabela</param>
		public static void SetMaxLengthOnTextBoxes(Control parent, DbMetadataCache mdCache, string tableName)
		{
			SetMaxLengthOnTextBoxes(parent, null, mdCache, tableName);
		}
Exemplo n.º 3
0
		/// <summary>
		/// Atribui a propriedade MaxLength de todos os <see cref="TextBox"/>es filhos de um controle.
		/// </summary>
		/// <param name="parent">O controle a partir de onde serão atribuidas as propriedades <c>MaxLength</c>.</param>
		/// <param name="connector">O <see cref="IConnector"/></param>
		/// <param name="mdCache">O objeto <see cref="DbMetadataCache"/> utilizado para buscar as informações sobre as tabelas</param>
		/// <param name="defaultTableName">O nome da tabela</param>
		public static void SetMaxLengthOnTextBoxes(Control parent, IConnector connector, DbMetadataCache mdCache, string defaultTableName)
		{
			var rx = new Regex(@"(?<t>[^.]+)\.(?<f>[^.]+)", RegexOptions.ExplicitCapture | RegexOptions.Compiled);
			Match m;

			if (connector != null)
				defaultTableName = connector.GetPhysicalTableName(defaultTableName);

			foreach (TextBox txt in SelectControls(parent, new TypeCondition(typeof(TextBox))))
				if (txt.Enabled && !txt.ReadOnly && txt.ID != null && txt.ID.Length > 3)
				{
					var dbRelated = txt as IDatabaseFieldRelated;
					if (dbRelated != null && dbRelated.DatabaseField != null && (m = rx.Match(dbRelated.DatabaseField)).Success)
					{
						string table = m.Groups["t"].Value;
						string field = m.Groups["f"].Value;
						if (connector != null)
							table = connector.GetPhysicalTableName(table);
						txt.MaxLength = mdCache.MaxLength(table, field);
						continue;
					}
					txt.MaxLength = mdCache.MaxLength(defaultTableName, txt.ID.Substring(3));
				}
		}
		/// <summary>
		/// Garante que o <see cref="mdCache"/> estará criado.
		/// </summary>
		/// <param name="t">
		/// O tipo, para criação do 
		/// <see cref="NHibernateDbConnectionFactory"/>.
		/// </param>
		private static void EnsureMetadataCache(Type t)
		{
			if (mdCache == null)
				lock (staticSync)
				{
					NHibernateDbConnectionFactory factory =
						new NHibernateDbConnectionFactory(ActiveRecordMediator.GetSessionFactoryHolder().GetSessionFactory(t));
					mdCache = new DbMetadataCache(factory);
				}
		}