コード例 #1
0
 private void OnNewPresetCommand(object obj)
 {
     HandlerExecutor.Execute <NewPresetHandler>(ExecutionEvent.Create(new List <TreeNavigationItem>()
     {
         GetMasterNavigationItem()
     }));
 }
コード例 #2
0
        public Task <CommandResult> Send(ICommand message, Peer peer)
        {
            lock (_commands)
            {
                _commands.Add(message);
                if (peer != null)
                {
                    _messagesByPeerId.GetValueOrAdd(peer.Id, p => new List <IMessage>()).Add(message);
                }

                _peerByCommand[message] = peer;
            }

            var handler = (peer != null) ? _handlers.GetValueOrDefault(new HandlerKey(message.GetType(), peer.Id)) : null;

            if (handler == null)
            {
                handler = _handlers.GetValueOrDefault(new HandlerKey(message.GetType(), default(PeerId)));
            }

            return(HandlerExecutor.Execute(message, handler));
        }
コード例 #3
0
ファイル: TestBus.cs プロジェクト: ocoanet/Zebus
        public Task <CommandResult> Send(ICommand message, Peer peer)
        {
            if (Serializer.TryClone(message, out var clone))
            {
                message = clone;
            }

            lock (_commands)
            {
                _commands.Add(message);
                if (peer != null)
                {
                    _messagesByPeerId.GetValueOrAdd(peer.Id, p => new List <IMessage>()).Add(message);
                }

                _peerByCommand[message] = peer;
            }

            Func <IMessage, object> handler;

            if (peer != null)
            {
                _handlers.TryGetValue(new HandlerKey(message.GetType(), peer.Id), out handler);
            }
            else
            {
                handler = null;
            }

            // TODO why do we fall back in all cases?
            if (handler == null)
            {
                _handlers.TryGetValue(new HandlerKey(message.GetType(), default), out handler);
            }

            return(HandlerExecutor.Execute(message, handler));
        }
コード例 #4
0
 private void OnGenerateLiquibaseCommand(object obj)
 {
     HandlerExecutor.Execute <GenerateLiquibaseHandler>(ExecutionEvent.Create(obj as List <TreeNavigationItem>));
 }
コード例 #5
0
 private void OnCloseProjectCommand(object obj)
 {
     HandlerExecutor.Execute <CloseProjectHandler>(null);
 }
コード例 #6
0
 private void OnOpenProjectCommand(object obj)
 {
     HandlerExecutor.Execute <OpenProjectHandler>(null);
 }
コード例 #7
0
 private void OnCopyCommand(object obj)
 {
     HandlerExecutor.Execute <CopyHandler>(ExecutionEvent.Create(obj as List <TreeNavigationItem>));
 }
コード例 #8
0
 private void OnNewCompmositeTypeElementCommand(object obj)
 {
     HandlerExecutor.Execute <NewCompositeTypeElementHandler>(ExecutionEvent.Create(obj as List <TreeNavigationItem>));
 }
コード例 #9
0
 private void OnNewFolderCommand(object obj)
 {
     HandlerExecutor.Execute <NewFolderHandler>(ExecutionEvent.Create(obj as List <TreeNavigationItem>));
 }
コード例 #10
0
 private void OnSetAsDefaultCommand(object obj)
 {
     HandlerExecutor.Execute <DefaultHandler>(ExecutionEvent.Create((List <TreeNavigationItem>)obj, GetMasterNavigationItem()));
 }