Esempio n. 1
0
        public async Task Pipe(IncomingMessage message, PlayerInfo info, T data, Func <Task> next)
        {
            data.ControllersStack ??= new List <string>(new[] { _mainControllerName });

            string realControllerName = data.ControllersStack?.LastOrDefault() ?? _mainControllerName;

            ControllerBase <T> controller = _controllersProvider.ResolveControllerByName(realControllerName);
            IControllerAnswer  answer     = await controller.ProcessMessage(message, info, data);

            await ProcessAnswer(answer, data, info);
        }
Esempio n. 2
0
 // ReSharper disable once UnusedParameter.Local
 private async Task ProcessAnswer(IControllerAnswer answer, T data, PlayerInfo info)
 {
     await _gameCommunicator.Answer(new GameAnswer
     {
         PlayerId    = info.Key,
         Suggestions = answer
                       .Suggestions
                       .Select(a => a.GetSuggestion(_localizer, info.Locale))
                       .ToArray(),
         Text = answer.Text
     });
 }