public async Task RegisterCommandHandler(object sender, MessageHandlerEventArgs e) { var command = (e.Message as RegisterCommand).Command; CommandsDictionary[command.Id] = command; Commands.Add(command); }
private async Task HandleListModules(object sender, MessageHandlerEventArgs e) { var response = new ModuleList() { Modules = Modules.Select(m => m.ClientHello.Name).ToList() }; e.Connection.Send(response); Console.WriteLine("hi"); }
private async Task HandleCommand(object sender, MessageHandlerEventArgs e) { var msg = e.Message as CommandNotification; if (!CommandHandlers.ContainsKey(msg.Id)) { return; } var ret = CommandHandlers[msg.Id](this, new CommandHandlerEventArgs(msg)); await Connection.Send(new CommandResult() { CallId = msg.CallId, Output = (string)ret }); }
private async Task HandleInfoRequest(object sender, MessageHandlerEventArgs e) { var name = (e.Message as GetModuleInfo).ModuleName; var module = Modules.FirstOrDefault(m => m.ClientHello.Name == name); var info = new ModuleInfo(); if (module != null) { info.ClientHello = module.ClientHello; info.Uptime = DateTime.UtcNow - module.Started; info.Health = ModuleHealth.Healthy; } e.Connection.Send(info); }
public async Task ProcessMessage(object message) { if (message == null) { return; } var type = message.GetType(); if (MessageHandlers.ContainsKey(type)) { var args = new MessageHandlerEventArgs(Connection, message, type); foreach (var handler in MessageHandlers[type]) { await handler(this, args); } } }
private async Task HandleSopronMessage(IConnection connection, object message) { if (message == null) { return; } var type = message.GetType(); if (MessageHandlers.ContainsKey(type)) { var args = new MessageHandlerEventArgs(connection, message, type); foreach (var handler in MessageHandlers[type]) { await handler(this, args); } } await Connections[connection].ProcessMessage(message); }
public async Task HandleMessage() { var message = await Connection.Receive(); if (message == null) { return; } var type = message.GetType(); if (MessageHandlers.ContainsKey(type)) { var args = new MessageHandlerEventArgs(Connection, message, type); foreach (var handler in MessageHandlers[type]) { Task.Run(() => handler(this, args)).ConfigureAwait(false); } } }
private async Task HandleCommandResult(object sender, MessageHandlerEventArgs e) { var result = e.Message as CommandResult; if (string.IsNullOrEmpty(result.Output)) { return; } var call = WaitingCalls[result.CallId]; var reply = new Message() { Contents = result.Output, RawContents = result.Output, Time = DateTime.Now, User = call.Message.SelfIdentifier, Location = call.Message.Location, SelfIdentifier = call.Message.SelfIdentifier }; WaitingCalls.Remove(result.CallId, out WaitingCommandCall c); await call.Source.SendMessage(reply); }
private async Task HandleClientHello(object sender, MessageHandlerEventArgs e) { Connections[e.Connection].ClientHello = e.Message as ClientHello; }