Mango.Nop.Plugins/Nop.Plugin.Misc.AIPlugin/Infrastructure/PluginNopStartup.cs

74 lines
2.6 KiB
C#

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Mvc.Razor;
using Microsoft.AspNetCore.SignalR;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Nop.Core.Infrastructure;
using Nop.Plugin.Misc.FruitBankPlugin.Filters;
using Nop.Plugin.Misc.FruitBankPlugin.Services;
using Nop.Services.Catalog;
namespace Nop.Plugin.Misc.FruitBankPlugin.Infrastructure;
public class PluginNopStartup : INopStartup
{
/// <summary>
/// Add and configure any of the middleware
/// </summary>
/// <param name="services">Collection of service descriptors</param>
/// <param name="configuration">Configuration of the application</param>
public void ConfigureServices(IServiceCollection services, IConfiguration configuration)
{
services.Configure<RazorViewEngineOptions>(options =>
{
options.ViewLocationExpanders.Add(new ViewLocationExpander());
});
//services.AddCors(feature =>
// feature.AddPolicy(
// "AllowBlazorClient",
// apiPolicy => apiPolicy
// .WithOrigins("https://localhost:7144")
// .AllowAnyHeader()
// .AllowAnyMethod()
// .AllowCredentials()
// ));
services.AddSignalR();
//register services and interfaces
//services.AddScoped<CustomModelFactory, ICustomerModelFactory>();
services.AddScoped<IPriceCalculationService, CustomPriceCalculationService>();
services.AddScoped<PriceCalculationService, CustomPriceCalculationService>();
services.AddScoped<IOrderMeasurementService, OrderMeasurementService>();
services.AddScoped<PendingMeasurementCheckoutFilter>();
services.AddControllersWithViews(options =>
{
options.Filters.AddService<PendingMeasurementCheckoutFilter>();
});
}
/// <summary>
/// Configure the using of added middleware
/// </summary>
/// <param name="application">Builder for configuring an application's request pipeline</param>
public void Configure(IApplicationBuilder application)
{
application.UseWhen(context => context.Request.Path.StartsWithSegments("/fbhub"), app =>
{
//app.UseCors("AllowBlazorClient");
//app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapHub<FruitBankHub>("/fbhub");
});
});
}
/// <summary>
/// Gets order of this startup configuration implementation
/// </summary>
public int Order => 4000;
}