public async void ProcessCommand(IMessage command) { try { //log.Info("Processing command from " + command.Source.ToString()); var module = StrategyFactory.GetProcessingModule(command); IProcessingResult result = module.ProcessCommand(command); await ResponseGenerator.SendResponse(result); } catch (NoModuleFoundException ex) { log.Error("No module found", ex); } catch (Exception ex) { log.Error("Unexpected exception", ex); } }