/// <inheritdoc/>
        protected override async Task OnTeamsMessagingExtensionConfigurationSettingAsync(
            ITurnContext <IInvokeActivity> turnContext,
            JObject settings,
            CancellationToken cancellationToken)
        {
            turnContext = turnContext ?? throw new ArgumentNullException(nameof(turnContext));
            settings ??= new JObject();

            var state = settings["state"]?.ToString()?.ToUpperInvariant();

            switch (state)
            {
            case "SIGNOUT":
                this.logger.LogInformation("User initiated sign-out");
                await turnContext.SignOutUserAsync(this.appSettings.GraphConnectionName, cancellationToken);

                return;

            default:
                this.logger.LogWarning("Unknown setting state: {0}", state);
                return;
            }
        }