//=================================================================================== Events protected override void OnMoving(object sender, SenseNet.ContentRepository.Storage.Events.CancellableNodeOperationEventArgs e) { // AD Sync check var ADProvider = DirectoryProvider.Current; if (ADProvider != null) { var targetNodePath = RepositoryPath.Combine(e.TargetNode.Path, this.Name); var allowMove = ADProvider.AllowMoveADObject(this, targetNodePath); if (!allowMove) { e.CancelMessage = "Moving of synced nodes is only allowed within AD server bounds!"; e.Cancel = true; } } base.OnMoving(sender, e); }
internal static void InvokeCancelOperationEventHandlers(CancellableNodeOperationEventHandler handler, object sender, CancellableNodeOperationEventArgs e) { if (handler == null) { return; } Exception firstException = null; Delegate[] list = (Delegate[])handler.GetInvocationList().Clone(); bool cancel = false; foreach (CancellableNodeOperationEventHandler del in list) { try { del(sender, e); cancel = cancel | e.Cancel; e.Cancel = cancel; } catch (Exception ex) //TODO: catch block { //LogException(source, ex); if (firstException == null) { firstException = ex; } } } if (firstException != null) { throw firstException; } }
protected virtual void OnNodeCopying(object sender, CancellableNodeOperationEventArgs e) { }
internal static void FireOnNodeCopying(CancellableNodeOperationEventHandler Copying, Node sender, CancellableNodeOperationEventArgs e, List <Type> disabledObservers) { InvokeCancelOperationEventHandlers(Copying, sender, e); var observers = NodeTypeManager.Current.NodeObservers; if (observers == null) { return; } if (disabledObservers == null) { foreach (NodeObserver observer in observers) { observer.OnNodeCopying(sender, e); } } else { foreach (NodeObserver observer in observers) { if (!disabledObservers.Contains(observer.GetType())) { observer.OnNodeCopying(sender, e); } } } }
protected internal virtual void OnNodeMoving(object sender, CancellableNodeOperationEventArgs e) { }
internal static void FireOnNodeCopying(CancellableNodeOperationEventHandler Copying, Node sender, CancellableNodeOperationEventArgs e, List <Type> disabledObservers) { InvokeCancelOperationEventHandlers(Copying, sender, e); FireNodeEvent(disabledObservers, observer => { observer.OnNodeCopying(sender, e); }); }
protected override void OnNodeMoving(object sender, CancellableNodeOperationEventArgs e) { RouteCancelEvent(RepositoryEvent.Moving, sender, e.SourceNode, e); }