Beispiel #1
0
 private ServiceProvider BuildQueryControllerProvider(
     IBotInputQuery inputQuery, IBotInputChat inputChat, RouteValueDictionary matchedData
     ) => CollectBaseServiceCollection()
 .AddSingleton(inputQuery)
 .AddSingleton(matchedData)
 .AddSingleton(inputChat)
 .BuildServiceProvider();
Beispiel #2
0
        private void RootQueryHandler(IBotInputQuery inputQuery, IBotInputChat inputChat)
        {
            var queryAction = FindQueryAction(inputQuery.Payload);
            var matchedData = queryAction.Metadata.Template.MatchRoute(inputQuery.Payload);

            using var provider = BuildQueryControllerProvider(inputQuery, inputChat, matchedData);

            Log(inputQuery);
            Log(inputChat);
            Log(queryAction.Metadata);
            Log(matchedData);
            EnsureChatSaved(provider, inputChat);
            CheckDisplayClearing(provider, queryAction, inputChat);
            HandleView(HandleQuery(provider, queryAction.Method), inputChat);
            UpdateLastExecutedQuery(provider, queryAction, inputChat);
        }
Beispiel #3
0
 private void HandleQuery(IBotInputQuery inputQuery, IBotInputChat inputChat)
 => TryToExecute(() => RootQueryHandler(inputQuery, inputChat));