Inheritance: CancellableNodeEventArgs
Beispiel #1
0
        //=================================================================================== 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);
        }
Beispiel #2
0
        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;
            }
        }
Beispiel #3
0
 protected virtual void OnNodeCopying(object sender, CancellableNodeOperationEventArgs e)
 {
 }
Beispiel #4
0
        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);
                    }
                }
            }
        }
Beispiel #5
0
 protected internal virtual void OnNodeMoving(object sender, CancellableNodeOperationEventArgs e)
 {
 }
Beispiel #6
0
 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);
 }