private void OnNewPresetCommand(object obj) { HandlerExecutor.Execute <NewPresetHandler>(ExecutionEvent.Create(new List <TreeNavigationItem>() { GetMasterNavigationItem() })); }
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)); }
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)); }
private void OnGenerateLiquibaseCommand(object obj) { HandlerExecutor.Execute <GenerateLiquibaseHandler>(ExecutionEvent.Create(obj as List <TreeNavigationItem>)); }
private void OnCloseProjectCommand(object obj) { HandlerExecutor.Execute <CloseProjectHandler>(null); }
private void OnOpenProjectCommand(object obj) { HandlerExecutor.Execute <OpenProjectHandler>(null); }
private void OnCopyCommand(object obj) { HandlerExecutor.Execute <CopyHandler>(ExecutionEvent.Create(obj as List <TreeNavigationItem>)); }
private void OnNewCompmositeTypeElementCommand(object obj) { HandlerExecutor.Execute <NewCompositeTypeElementHandler>(ExecutionEvent.Create(obj as List <TreeNavigationItem>)); }
private void OnNewFolderCommand(object obj) { HandlerExecutor.Execute <NewFolderHandler>(ExecutionEvent.Create(obj as List <TreeNavigationItem>)); }
private void OnSetAsDefaultCommand(object obj) { HandlerExecutor.Execute <DefaultHandler>(ExecutionEvent.Create((List <TreeNavigationItem>)obj, GetMasterNavigationItem())); }