/// <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); } }
/// <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; } }
/// <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; } }
/// <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); } }