Untitled diff

Created Diff never expires
11 removals
Lines
Total
Removed
Words
Total
Removed
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
65 lines
28 additions
Lines
Total
Added
Words
Total
Added
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
83 lines
// Copyright (c) Microsoft Corporation. All rights reserved.
using Microsoft.ApplicationInsights.Extensibility;
// Licensed under the MIT License.

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Bot.Builder;
using Microsoft.Bot.Builder;
using Microsoft.Bot.Builder.ApplicationInsights;
using Microsoft.Bot.Builder.Integration.ApplicationInsights.Core;
using Microsoft.Bot.Builder.Integration.AspNet.Core;
using Microsoft.Bot.Builder.Integration.AspNet.Core;
using Microsoft.Bot.Connector.Authentication;
using Microsoft.BotBuilderSamples.Bots;
using Microsoft.BotBuilderSamples.Bots;
using Microsoft.BotBuilderSamples.Dialogs;
using Microsoft.BotBuilderSamples.Dialogs;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection;


namespace Microsoft.BotBuilderSamples
namespace Microsoft.BotBuilderSamples
{
{
public class Startup
public class Startup
{
{
// This method gets called by the runtime. Use this method to add services to the container.
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
public void ConfigureServices(IServiceCollection services)
{
{
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);


// Create the credential provider to be used with the Bot Framework Adapter.
services.AddSingleton<ICredentialProvider, ConfigurationCredentialProvider>();

// Add Application Insights services into service collection
services.AddApplicationInsightsTelemetry();

// Create the telemetry client.
services.AddSingleton<IBotTelemetryClient, BotTelemetryClient>();

// Add ASP middleware to store the http body mapped with bot activity key in the httpcontext.items. This will be picked by the TelemetryBotIdInitializer
services.AddTransient<TelemetrySaveBodyASPMiddleware>();

// Add telemetry initializer that will set the correlation context for all telemetry items.
services.AddSingleton<ITelemetryInitializer, OperationCorrelationTelemetryInitializer>();

// Add telemetry initializer that sets the user ID and session ID (in addition to other bot-specific properties such as activity ID)
services.AddSingleton<ITelemetryInitializer, TelemetryBotIdInitializer>();

// Create the telemetry middleware to track conversation events
services.AddSingleton<IMiddleware, TelemetryLoggerMiddleware>();

// Create the Bot Framework Adapter with error handling enabled.
// Create the Bot Framework Adapter with error handling enabled.
services.AddSingleton<IBotFrameworkHttpAdapter, AdapterWithErrorHandler>();
services.AddSingleton<IBotFrameworkHttpAdapter, AdapterWithErrorHandler>();


// Create the storage we'll be using for User and Conversation state. (Memory is great for testing purposes.)
// Create the storage we'll be using for User and Conversation state. (Memory is great for testing purposes.)
services.AddSingleton<IStorage, MemoryStorage>();
services.AddSingleton<IStorage, MemoryStorage>();


// Create the User state. (Used in this bot's Dialog implementation.)
// Create the User state. (Used in this bot's Dialog implementation.)
services.AddSingleton<UserState>();
services.AddSingleton<UserState>();


// Create the Conversation state. (Used by the Dialog system itself.)
// Create the Conversation state. (Used by the Dialog system itself.)
services.AddSingleton<ConversationState>();
services.AddSingleton<ConversationState>();


// Register LUIS recognizer
// The Dialog that will be run by the bot.
services.AddSingleton<FlightBookingRecognizer>();

// Register the BookingDialog.
services.AddSingleton<BookingDialog>();

// The MainDialog that will be run by the bot.
services.AddSingleton<MainDialog>();
services.AddSingleton<MainDialog>();


// Create the bot as a transient. In this case the ASP Controller is expecting an IBot.
// Create the bot as a transient. In this case the ASP Controller is expecting an IBot.
services.AddTransient<IBot, DialogAndWelcomeBot<MainDialog>>();
services.AddTransient<IBot, DialogAndWelcomeBot<MainDialog>>();
}
}


// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
{
if (env.IsDevelopment())
if (env.IsDevelopment())
{
{
app.UseDeveloperExceptionPage();
app.UseDeveloperExceptionPage();
}
}
else
else
{
{
app.UseHsts();
app.UseHsts();
}
}


app.UseDefaultFiles();
app.UseDefaultFiles();
app.UseStaticFiles();
app.UseStaticFiles();


//app.UseHttpsRedirection();
app.UseBotApplicationInsights();
app.UseMvc();
app.UseMvc();
}
}
}
}
}
}