public GitHubController(
     ILogger <GitHubController> logger,
     OAuthTokenProvider tokenProvider,
     GitHubServiceClient githubServiceClient)
 {
     _logger              = logger;
     _tokenProvider       = tokenProvider;
     _githubServiceClient = githubServiceClient;
 }
 public SampleActivityHandler(
     ILogger <SampleActivityHandler <TDialog> > logger,
     TDialog dialog,
     OAuthTokenProvider oAuthTokenProvider,
     GitHubServiceClient gitHubServiceClient,
     ConversationState botState,
     UserState userState,
     IDataProtectionProvider dataProtectionProvider) : base()
 {
     _logger = logger;
     _gitHubServiceClient = gitHubServiceClient;
     _oAuthTokenProvider  = oAuthTokenProvider;
     _dialog        = dialog;
     _botState      = botState;
     _userState     = userState;
     _dataProtector = dataProtectionProvider.CreateProtector(nameof(SampleActivityHandler <TDialog>));
 }
    public MainDialog(
        ILogger <MainDialog> logger,
        AccountLinkingPrompt accountLinkingPrompt,
        GitHubServiceClient githubServiceClient,
        OAuthTokenProvider oauthTokenProvider) : base(oauthTokenProvider, nameof(MainDialog))
    {
        _logger = logger;
        _githubServiceClient = githubServiceClient;

        AddDialog(accountLinkingPrompt);
        AddDialog(new WaterfallDialog(nameof(WaterfallDialog), new []
        {
            GetWaterfallDialogStep(accountLinkingPrompt.Id),
            TokenStepAsync,
        }));

        InitialDialogId = nameof(WaterfallDialog);
    }