예제 #1
0
 /// <summary>
 /// Remove o observador do sistema.
 /// </summary>
 /// <param name="typeName"></param>
 /// <param name="observer"></param>
 public void Unregister(Reflection.TypeName typeName, Colosoft.Query.IRecordObserver observer)
 {
     if (IsEnabled && IsValidType(typeName))
     {
         var typeNameEntry = GetTypeNameEntry(typeName);
         typeNameEntry.RemoveObserver(observer);
     }
 }
예제 #2
0
        /// <summary>
        /// Remove o registro do observer do registro associado com a entidade.
        /// </summary>
        private void UnregisterRecordObserver()
        {
            var modelType = ModelType;
            var manager   = Colosoft.Query.RecordObserverManager.Instance;

            if (modelType != null && _recordObserver != null && manager != null && manager.IsEnabled)
            {
                manager.Unregister(Colosoft.Reflection.TypeName.Get(modelType), _recordObserver);
                if (_recordObserver is IDisposable)
                {
                    ((IDisposable)_recordObserver).Dispose();
                }
                _recordObserver = null;
            }
        }
예제 #3
0
        /// <summary>
        /// Registra a instancia para ser observada.
        /// </summary>
        /// <param name="recordKey">Chave do registro que representa a instancia.</param>
        void IEntityRecordObserver.RegisterObserver(Query.RecordKey recordKey)
        {
            recordKey.Require("record").NotNull();
            var manager   = Colosoft.Query.RecordObserverManager.Instance;
            var modelType = ModelType;

            if (manager != null && manager.IsEnabled && ModelType != null)
            {
                if (_recordObserver != null)
                {
                    UnregisterRecordObserver();
                }
                var observer = CreateRecordObserver();
                manager.Register(Colosoft.Reflection.TypeName.Get(modelType), recordKey, observer);
                _recordObserver = observer;
            }
        }
예제 #4
0
 /// <summary>
 /// Registro o registro para ser observado.
 /// </summary>
 /// <param name="typeName"></param>
 /// <param name="recordKey"></param>
 /// <param name="observer"></param>
 public void Register(Reflection.TypeName typeName, Query.RecordKey recordKey, Colosoft.Query.IRecordObserver observer)
 {
     if (IsEnabled && IsValidType(typeName))
     {
         var typeNameEntry = GetTypeNameEntry(typeName);
         typeNameEntry.AddRecordKey(recordKey, observer);
     }
 }