Exemplo n.º 1
0
        /// <summary>
        /// Recupera os nomes dos campos que representam a chave do registro.
        /// </summary>
        /// <param name="typeName"></param>
        /// <returns></returns>
        public IEnumerable <string> GetKeyFields(Reflection.TypeName typeName)
        {
            typeName.Require("typeName").NotNull();
            var generator = CreateGenerator(typeName) as Generator;

            return(generator.FieldNames);
        }
Exemplo n.º 2
0
 /// <summary>
 /// Registra o nome do tipo que terá seus dados carregados para o cache na inicialização.
 /// </summary>
 /// <param name="typeName"></param>
 public virtual IDataCacheManager Register(Reflection.TypeName typeName)
 {
     typeName.Require("typeFullName").NotNull();
     lock (_objLock)
     {
         var index = _typeNames.BinarySearch(typeName, Reflection.TypeName.TypeNameFullNameComparer.Instance);
         if (index < 0)
         {
             _typeNames.Insert(~index, typeName);
         }
     }
     return(this);
 }
Exemplo n.º 3
0
        /// <summary>
        /// Cria uma chave para o registro.
        /// </summary>
        /// <param name="typeName">Nome do tipo que representa os dados contidos no registro.</param>
        /// <param name="record">Instancia do registro com os dados.</param>
        /// <returns>Chave que representa o registro.</returns>
        public Query.RecordKey Create(Reflection.TypeName typeName, Query.IRecord record)
        {
            typeName.Require("typeName").NotNull();
            var  generator  = CreateGenerator(typeName);
            var  key        = generator.GetSimpleKey(record);
            long rowVersion = 0;
            var  index      = 0;

            for (; index < record.Descriptor.Count; index++)
            {
                if (StringComparer.InvariantCultureIgnoreCase.Equals(record.Descriptor[index].Name, "RowVersion"))
                {
                    break;
                }
            }
            if (index < record.Descriptor.Count)
            {
                rowVersion = (long)record.GetInt64(index);
            }
            return(new Query.RecordKey(key, rowVersion));
        }
Exemplo n.º 4
0
 /// <summary>
 /// Registra um erro na carga da expecialização entidade.
 /// </summary>
 /// <param name="entityTypeName"></param>
 /// <param name="entitySpecialization"></param>
 /// <param name="error"></param>
 public static void RegisterSpecializationError(Reflection.TypeName entityTypeName, Colosoft.Validation.IEntitySpecialization entitySpecialization, Exception error)
 {
     entityTypeName.Require("entityTypeName").NotNull();
     GetInfo(entityTypeName).ContainsSpecializationError = true;
     Observer.OnEntitySpecializationError(entityTypeName, entitySpecialization, error);
 }
Exemplo n.º 5
0
 /// <summary>
 /// Verifica se o tipo da entidade possui erro na carga da especialização.
 /// </summary>
 /// <param name="entityTypeName"></param>
 /// <returns></returns>
 public static bool ContainsSpecializationError(Reflection.TypeName entityTypeName)
 {
     entityTypeName.Require("entityTypeName").NotNull();
     lock (_infos)
         return(_infos.ContainsKey(entityTypeName));
 }