Пример #1
0
        /// <summary>
        /// Método acionado quando um registro é criado.
        /// </summary>
        /// <param name="record"></param>
        public virtual void OnRecordInserted(Colosoft.Query.IRecord record)
        {
            if (!IsAlive)
            {
                return;
            }
            var item       = CreateCollectionItem(record);
            var collection = Collection;

            if (collection != null && !collection.Contains(item))
            {
                collection.Add(item);
            }
        }
Пример #2
0
        /// <summary>
        /// Recupera os valores adicionais.
        /// </summary>
        /// <param name="record"></param>
        /// <param name="mode"></param>
        /// <returns></returns>
        public override IEnumerable <string> Bind(Colosoft.Query.IRecord record, Colosoft.Query.BindStrategyMode mode)
        {
            if (record.Descriptor.Contains("Tipo"))
            {
                var tipoSetor = (Glass.Data.Model.TipoSetor)(int) record["Tipo"];

                if (mode == Colosoft.Query.BindStrategyMode.All ||
                    (tipoSetor != TipoSetor))
                {
                    TipoSetor = tipoSetor;
                    yield return("TipoSetor");
                }
            }

            foreach (var i in base.Bind(record, mode))
            {
                yield return(i);
            }
        }
Пример #3
0
        /// <summary>
        /// Recupera os valores adicionais.
        /// </summary>
        /// <param name="record"></param>
        /// <param name="mode"></param>
        /// <returns></returns>
        public override IEnumerable <string> Bind(Colosoft.Query.IRecord record, Colosoft.Query.BindStrategyMode mode)
        {
            if (record.Descriptor.Contains("Grupo"))
            {
                string grupo = record["Grupo"];

                if (mode == Colosoft.Query.BindStrategyMode.All ||
                    (grupo != Grupo))
                {
                    Grupo = grupo;
                    yield return("Grupo");
                }
            }

            foreach (var i in base.Bind(record, mode))
            {
                yield return(i);
            }
        }
Пример #4
0
        /// <summary>
        /// Cria um registro para a coleção com base no registro informado.
        /// </summary>
        /// <param name="record"></param>
        /// <returns></returns>
        protected IEntityDescriptor CreateCollectionItem(Colosoft.Query.IRecord record)
        {
            var bindStrategy  = _entityLoader.GetEntityDescriptorBindStrategy();
            var objectCreator = _entityLoader.GetEntityDescriptorCreator();
            var instance      = objectCreator.Create();

            bindStrategy.Bind(record, Query.BindStrategyMode.All, ref instance);
            if (instance is IConnectedEntity)
            {
                ((IConnectedEntity)instance).Connect(_sourceContext);
            }
            if (instance is IEntityRecordObserver && instance is BusinessEntityDescriptor)
            {
                ((IEntityRecordObserver)instance).RegisterObserver(((BusinessEntityDescriptor)instance).RecordKey);
            }
            if (instance is ILoadableEntity)
            {
                ((ILoadableEntity)instance).NotifyLoaded();
            }
            return((IEntityDescriptor)instance);
        }
Пример #5
0
 /// <summary>
 /// Avalia se o registro informado é compatível.
 /// </summary>
 /// <param name="record"></param>
 /// <returns></returns>
 public bool Evaluate(Colosoft.Query.IRecord record)
 {
     return(IsAlive);
 }
Пример #6
0
 /// <summary>
 /// Realiza a carda da entidade com carga tardia dos dados filhos.
 /// </summary>
 /// <param name="record">Registro dos dados da entidade.</param>
 /// <param name="recordKey">Chave do registro.</param>
 /// <param name="bindStrategy">Estratégia de vinculação dos dados do resultado.</param>
 /// <param name="objectCreator">Instancia responsável por criar objetos.</param>
 /// <param name="sourceContext">Contexto de origem dos dados.</param>
 /// <param name="uiContext">Contexto visual.</param>
 /// <param name="entityTypeManager">Instancia do gerenciador de tipos de entidades.</param>
 /// <param name="args">Argumentos que serão usados</param>
 /// <returns></returns>
 public abstract IEntity LazyLoad(Colosoft.Query.IRecord record, Query.RecordKey recordKey, Colosoft.Query.IQueryResultBindStrategy bindStrategy, Colosoft.Query.IQueryResultObjectCreator objectCreator, Colosoft.Query.ISourceContext sourceContext, string uiContext, IEntityTypeManager entityTypeManager, EntityLoaderLazyArgs args = null);
Пример #7
0
 /// <summary>
 /// Realiza a carga da entidade com carga tardia dos dados filhos.
 /// </summary>
 /// <param name="record">Registro dos dados da entidade.</param>
 /// <param name="recordKey">Chave do registro.</param>
 /// <param name="sourceContext">Contexto de origem dos dados.</param>
 /// <param name="uiContext">Contexto visual.</param>
 /// <param name="entityTypeManager">Instancia do gerenciador de tipos de entidades.</param>
 /// <param name="args">Argumentos que serão usados</param>
 /// <returns></returns>
 public IEntity LazyLoad(Colosoft.Query.IRecord record, Query.RecordKey recordKey, Colosoft.Query.ISourceContext sourceContext, string uiContext, IEntityTypeManager entityTypeManager, EntityLoaderLazyArgs args = null)
 {
     return(LazyLoad(record, recordKey, GetBindStrategy(), GetObjectCreator(), sourceContext, uiContext, entityTypeManager, args));
 }
Пример #8
0
 /// <summary>
 /// Realiza a carga completa da entidade.
 /// </summary>
 /// <param name="record">Registro dos dados da entidade.</param>
 /// <param name="recordKey">Chave do registro.</param>
 /// <param name="bindStrategy">Estratégia de vinculação dos dados do resultado.</param>
 /// <param name="objectCreator">Instancia responsável por criar objetos.</param>
 /// <param name="sourceContext">Contexto de origem dos dados.</param>
 /// <param name="uiContext">Contexto visual.</param>
 /// <param name="entityTypeManager">Gerenciador de tipos.</param>
 /// <returns></returns>
 public abstract IEntity FullLoad(Colosoft.Query.IRecord record, Query.RecordKey recordKey, Colosoft.Query.IQueryResultBindStrategySession bindStrategy, Colosoft.Query.IQueryResultObjectCreator objectCreator, Colosoft.Query.ISourceContext sourceContext, string uiContext, IEntityTypeManager entityTypeManager);
Пример #9
0
        /// <summary>
        /// Realiza a carga completa da entidade.
        /// </summary>
        /// <param name="record">Registro dos dados da entidade.</param>
        /// <param name="recordKey">Chave que representa o registro.</param>
        /// <param name="sourceContext">Contexto de origem dos dados.</param>
        /// <param name="uiContext">Contexto visual.</param>
        /// <param name="entityTypeManager">Gerenciador de tipos.</param>
        /// <returns></returns>
        public IEntity FullLoad(Colosoft.Query.IRecord record, Colosoft.Query.RecordKey recordKey, Colosoft.Query.ISourceContext sourceContext, string uiContext, IEntityTypeManager entityTypeManager)
        {
            var bindStragetySession = GetBindStrategy().CreateSession(record.Descriptor);

            return(FullLoad(record, recordKey, bindStragetySession, GetObjectCreator(), sourceContext, uiContext, entityTypeManager));
        }
Пример #10
0
 /// <summary>
 /// Recupera a chave com base nos dados do registro informado.
 /// </summary>
 /// <param name="record"></param>
 /// <returns></returns>
 public string GetKey(Colosoft.Query.IRecord record)
 {
     return(string.Format("{0}:{1}", _typeName.FullName, GetSimpleKey(record)));
 }