From 89c22918124f2044e4cf05011191441479bc9fe5 Mon Sep 17 00:00:00 2001 From: Alex Driver Date: Wed, 20 Apr 2022 15:28:47 +0100 Subject: [PATCH] Remove autofac from the solution --- .../EventBus/EventBus/EventBus.csproj | 3 +- .../EventBusServiceCollectionExtensions.cs | 23 +++++++++++ .../EventBusRabbitMQ/EventBusRabbitMQ.cs | 14 +++---- .../EventBusRabbitMQ/EventBusRabbitMQ.csproj | 1 - .../EventBus/EventBusRabbitMQ/GlobalUsings.cs | 2 +- .../EventBusServiceBus/EventBusServiceBus.cs | 13 +++---- .../EventBusServiceBus.csproj | 1 - .../EventBusServiceBus/GlobalUsings.cs | 2 +- .../Basket/Basket.API/Basket.API.csproj | 1 - .../Basket/Basket.API/GlobalUsings.cs | 2 - src/Services/Basket/Basket.API/Startup.cs | 15 +++----- .../Base/BasketTestStartup.cs | 6 +-- .../Catalog/Catalog.API/GlobalUsings.cs | 2 - src/Services/Catalog/Catalog.API/Startup.cs | 15 +++----- .../Identity/Identity.API/GlobalUsings.cs | 2 - .../Identity/Identity.API/Identity.API.csproj | 1 - src/Services/Identity/Identity.API/Startup.cs | 7 +--- .../Ordering/Ordering.API/GlobalUsings.cs | 3 -- .../AutofacModules/ApplicationModule.cs | 38 ------------------- .../AutofacModules/MediatorModule.cs | 36 ------------------ .../Ordering/Ordering.API/Ordering.API.csproj | 1 - src/Services/Ordering/Ordering.API/Startup.cs | 27 ++++++------- .../Extensions/CustomExtensionMethods.cs | 11 +++--- .../Ordering.BackgroundTasks.csproj | 2 - .../Ordering.BackgroundTasks/Program.cs | 2 - .../OrderingTestStartup.cs | 4 +- .../AutofacModules/ApplicationModule.cs | 20 ---------- .../Ordering.SignalrHub/GlobalUsings.cs | 5 +-- .../Ordering.SignalrHub.csproj | 1 - .../Ordering/Ordering.SignalrHub/Startup.cs | 17 +++------ .../Payment/Payment.API/GlobalUsings.cs | 4 +- .../Payment/Payment.API/Payment.API.csproj | 3 +- src/Services/Payment/Payment.API/Startup.cs | 14 +++---- .../Webhooks/Webhooks.API/GlobalUsings.cs | 4 +- src/Services/Webhooks/Webhooks.API/Startup.cs | 14 +++---- .../Webhooks/Webhooks.API/Webhooks.API.csproj | 1 - src/Web/WebMVC/Services/OrderingService.cs | 2 +- src/docker-compose.override.yml | 2 +- 38 files changed, 94 insertions(+), 227 deletions(-) create mode 100644 src/BuildingBlocks/EventBus/EventBus/EventBusServiceCollectionExtensions.cs delete mode 100644 src/Services/Ordering/Ordering.API/Infrastructure/AutofacModules/ApplicationModule.cs delete mode 100644 src/Services/Ordering/Ordering.API/Infrastructure/AutofacModules/MediatorModule.cs delete mode 100644 src/Services/Ordering/Ordering.SignalrHub/AutofacModules/ApplicationModule.cs diff --git a/src/BuildingBlocks/EventBus/EventBus/EventBus.csproj b/src/BuildingBlocks/EventBus/EventBus/EventBus.csproj index 37396d3ec..8a832d0c2 100644 --- a/src/BuildingBlocks/EventBus/EventBus/EventBus.csproj +++ b/src/BuildingBlocks/EventBus/EventBus/EventBus.csproj @@ -5,7 +5,8 @@ Microsoft.eShopOnContainers.BuildingBlocks.EventBus - + + \ No newline at end of file diff --git a/src/BuildingBlocks/EventBus/EventBus/EventBusServiceCollectionExtensions.cs b/src/BuildingBlocks/EventBus/EventBus/EventBusServiceCollectionExtensions.cs new file mode 100644 index 000000000..d5061e014 --- /dev/null +++ b/src/BuildingBlocks/EventBus/EventBus/EventBusServiceCollectionExtensions.cs @@ -0,0 +1,23 @@ +using Microsoft.Extensions.DependencyInjection; +using System.Reflection; + +namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBus +{ + public static class EventBusServiceCollectionExtensions + { + public static IServiceCollection AddEventHandlers(this IServiceCollection services, System.Reflection.Assembly assembly) + { + foreach (var typeInfo in assembly.GetTypes() + .Where(t => typeof(IIntegrationEventHandler).IsAssignableFrom(t) + && t.IsClass + && !t.IsAbstract + && !t.ContainsGenericParameters + && t.GetConstructors(BindingFlags.Public | BindingFlags.Instance)?.Length != 0)) + { + services.AddScoped(typeInfo); + } + + return services; + } + } +} diff --git a/src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.cs b/src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.cs index 9b45eb996..224afd78b 100644 --- a/src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.cs +++ b/src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.cs @@ -3,26 +3,24 @@ public class EventBusRabbitMQ : IEventBus, IDisposable { const string BROKER_NAME = "eshop_event_bus"; - const string AUTOFAC_SCOPE_NAME = "eshop_event_bus"; - private readonly IRabbitMQPersistentConnection _persistentConnection; private readonly ILogger _logger; private readonly IEventBusSubscriptionsManager _subsManager; - private readonly ILifetimeScope _autofac; + private readonly IServiceScopeFactory _serviceScopeFactory; private readonly int _retryCount; private IModel _consumerChannel; private string _queueName; public EventBusRabbitMQ(IRabbitMQPersistentConnection persistentConnection, ILogger logger, - ILifetimeScope autofac, IEventBusSubscriptionsManager subsManager, string queueName = null, int retryCount = 5) + IServiceScopeFactory serviceScopeFactory, IEventBusSubscriptionsManager subsManager, string queueName = null, int retryCount = 5) { _persistentConnection = persistentConnection ?? throw new ArgumentNullException(nameof(persistentConnection)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _subsManager = subsManager ?? new InMemoryEventBusSubscriptionsManager(); _queueName = queueName; _consumerChannel = CreateConsumerChannel(); - _autofac = autofac; + _serviceScopeFactory = serviceScopeFactory; _retryCount = retryCount; _subsManager.OnEventRemoved += SubsManager_OnEventRemoved; } @@ -244,14 +242,14 @@ public class EventBusRabbitMQ : IEventBus, IDisposable if (_subsManager.HasSubscriptionsForEvent(eventName)) { - using (var scope = _autofac.BeginLifetimeScope(AUTOFAC_SCOPE_NAME)) + using (var scope = _serviceScopeFactory.CreateScope()) { var subscriptions = _subsManager.GetHandlersForEvent(eventName); foreach (var subscription in subscriptions) { if (subscription.IsDynamic) { - var handler = scope.ResolveOptional(subscription.HandlerType) as IDynamicIntegrationEventHandler; + var handler = scope.ServiceProvider.GetService(subscription.HandlerType) as IDynamicIntegrationEventHandler; if (handler == null) continue; using dynamic eventData = JsonDocument.Parse(message); await Task.Yield(); @@ -259,7 +257,7 @@ public class EventBusRabbitMQ : IEventBus, IDisposable } else { - var handler = scope.ResolveOptional(subscription.HandlerType); + var handler = scope.ServiceProvider.GetService(subscription.HandlerType); if (handler == null) continue; var eventType = _subsManager.GetEventTypeByName(eventName); var integrationEvent = JsonSerializer.Deserialize(message, eventType, new JsonSerializerOptions() { PropertyNameCaseInsensitive= true}); diff --git a/src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj b/src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj index b6b23483c..d475d1a41 100644 --- a/src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj +++ b/src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj @@ -6,7 +6,6 @@ - diff --git a/src/BuildingBlocks/EventBus/EventBusRabbitMQ/GlobalUsings.cs b/src/BuildingBlocks/EventBus/EventBusRabbitMQ/GlobalUsings.cs index 6fa5f0bf4..54874358c 100644 --- a/src/BuildingBlocks/EventBus/EventBusRabbitMQ/GlobalUsings.cs +++ b/src/BuildingBlocks/EventBus/EventBusRabbitMQ/GlobalUsings.cs @@ -7,7 +7,7 @@ global using RabbitMQ.Client.Exceptions; global using System; global using System.IO; global using System.Net.Sockets; -global using Autofac; +global using Microsoft.Extensions.DependencyInjection; global using Microsoft.eShopOnContainers.BuildingBlocks.EventBus; global using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Abstractions; global using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Events; diff --git a/src/BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.cs b/src/BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.cs index c53c56b98..0e2d72272 100644 --- a/src/BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.cs +++ b/src/BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.cs @@ -5,21 +5,20 @@ public class EventBusServiceBus : IEventBus, IDisposable private readonly IServiceBusPersisterConnection _serviceBusPersisterConnection; private readonly ILogger _logger; private readonly IEventBusSubscriptionsManager _subsManager; - private readonly ILifetimeScope _autofac; + private readonly IServiceScopeFactory _serviceScopeFactory; private readonly string _topicName = "eshop_event_bus"; private readonly string _subscriptionName; private ServiceBusSender _sender; private ServiceBusProcessor _processor; - private readonly string AUTOFAC_SCOPE_NAME = "eshop_event_bus"; private const string INTEGRATION_EVENT_SUFFIX = "IntegrationEvent"; public EventBusServiceBus(IServiceBusPersisterConnection serviceBusPersisterConnection, - ILogger logger, IEventBusSubscriptionsManager subsManager, ILifetimeScope autofac, string subscriptionClientName) + ILogger logger, IEventBusSubscriptionsManager subsManager, IServiceScopeFactory serviceScopeFactory, string subscriptionClientName) { _serviceBusPersisterConnection = serviceBusPersisterConnection; _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _subsManager = subsManager ?? new InMemoryEventBusSubscriptionsManager(); - _autofac = autofac; + _serviceScopeFactory = serviceScopeFactory; _subscriptionName = subscriptionClientName; _sender = _serviceBusPersisterConnection.TopicClient.CreateSender(_topicName); ServiceBusProcessorOptions options = new ServiceBusProcessorOptions { MaxConcurrentCalls = 10, AutoCompleteMessages = false }; @@ -155,14 +154,14 @@ public class EventBusServiceBus : IEventBus, IDisposable var processed = false; if (_subsManager.HasSubscriptionsForEvent(eventName)) { - using (var scope = _autofac.BeginLifetimeScope(AUTOFAC_SCOPE_NAME)) + using (var scope = _serviceScopeFactory.CreateScope()) { var subscriptions = _subsManager.GetHandlersForEvent(eventName); foreach (var subscription in subscriptions) { if (subscription.IsDynamic) { - var handler = scope.ResolveOptional(subscription.HandlerType) as IDynamicIntegrationEventHandler; + var handler = scope.ServiceProvider.GetService(subscription.HandlerType) as IDynamicIntegrationEventHandler; if (handler == null) continue; using dynamic eventData = JsonDocument.Parse(message); @@ -170,7 +169,7 @@ public class EventBusServiceBus : IEventBus, IDisposable } else { - var handler = scope.ResolveOptional(subscription.HandlerType); + var handler = scope.ServiceProvider.GetService(subscription.HandlerType); if (handler == null) continue; var eventType = _subsManager.GetEventTypeByName(eventName); var integrationEvent = JsonSerializer.Deserialize(message, eventType); diff --git a/src/BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj b/src/BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj index e725de1c7..afa149286 100644 --- a/src/BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj +++ b/src/BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj @@ -6,7 +6,6 @@ - diff --git a/src/BuildingBlocks/EventBus/EventBusServiceBus/GlobalUsings.cs b/src/BuildingBlocks/EventBus/EventBusServiceBus/GlobalUsings.cs index b0465794f..c539e1dba 100644 --- a/src/BuildingBlocks/EventBus/EventBusServiceBus/GlobalUsings.cs +++ b/src/BuildingBlocks/EventBus/EventBusServiceBus/GlobalUsings.cs @@ -6,7 +6,7 @@ global using System.Linq; global using System.Text.Json.Serialization; global using System.Threading.Tasks; global using System; -global using Autofac; +global using Microsoft.Extensions.DependencyInjection; global using Microsoft.eShopOnContainers.BuildingBlocks.EventBus; global using Microsoft.Extensions.Logging; global using System.Text; diff --git a/src/Services/Basket/Basket.API/Basket.API.csproj b/src/Services/Basket/Basket.API/Basket.API.csproj index ebb224824..1373db46c 100644 --- a/src/Services/Basket/Basket.API/Basket.API.csproj +++ b/src/Services/Basket/Basket.API/Basket.API.csproj @@ -20,7 +20,6 @@ - diff --git a/src/Services/Basket/Basket.API/GlobalUsings.cs b/src/Services/Basket/Basket.API/GlobalUsings.cs index 75f7a878e..904f97517 100644 --- a/src/Services/Basket/Basket.API/GlobalUsings.cs +++ b/src/Services/Basket/Basket.API/GlobalUsings.cs @@ -1,5 +1,3 @@ -global using Autofac.Extensions.DependencyInjection; -global using Autofac; global using Azure.Core; global using Azure.Identity; global using Basket.API.Infrastructure.ActionResults; diff --git a/src/Services/Basket/Basket.API/Startup.cs b/src/Services/Basket/Basket.API/Startup.cs index 082560048..c3c41eb1b 100644 --- a/src/Services/Basket/Basket.API/Startup.cs +++ b/src/Services/Basket/Basket.API/Startup.cs @@ -9,7 +9,7 @@ public class Startup public IConfiguration Configuration { get; } // This method gets called by the runtime. Use this method to add services to the container. - public virtual IServiceProvider ConfigureServices(IServiceCollection services) + public virtual void ConfigureServices(IServiceCollection services) { services.AddGrpc(options => { @@ -135,11 +135,6 @@ public class Startup services.AddTransient(); services.AddOptions(); - - var container = new ContainerBuilder(); - container.Populate(services); - - return new AutofacServiceProvider(container.Build()); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. @@ -240,13 +235,13 @@ public class Startup services.AddSingleton(sp => { var serviceBusPersisterConnection = sp.GetRequiredService(); - var iLifetimeScope = sp.GetRequiredService(); + var serviceScopeFactory = sp.GetRequiredService(); var logger = sp.GetRequiredService>(); var eventBusSubcriptionsManager = sp.GetRequiredService(); string subscriptionName = Configuration["SubscriptionClientName"]; return new EventBusServiceBus(serviceBusPersisterConnection, logger, - eventBusSubcriptionsManager, iLifetimeScope, subscriptionName); + eventBusSubcriptionsManager, serviceScopeFactory, subscriptionName); }); } else @@ -255,7 +250,7 @@ public class Startup { var subscriptionClientName = Configuration["SubscriptionClientName"]; var rabbitMQPersistentConnection = sp.GetRequiredService(); - var iLifetimeScope = sp.GetRequiredService(); + var serviceScopeFactory = sp.GetRequiredService(); var logger = sp.GetRequiredService>(); var eventBusSubcriptionsManager = sp.GetRequiredService(); @@ -265,7 +260,7 @@ public class Startup retryCount = int.Parse(Configuration["EventBusRetryCount"]); } - return new EventBusRabbitMQ(rabbitMQPersistentConnection, logger, iLifetimeScope, eventBusSubcriptionsManager, subscriptionClientName, retryCount); + return new EventBusRabbitMQ(rabbitMQPersistentConnection, logger, serviceScopeFactory, eventBusSubcriptionsManager, subscriptionClientName, retryCount); }); } diff --git a/src/Services/Basket/Basket.FunctionalTests/Base/BasketTestStartup.cs b/src/Services/Basket/Basket.FunctionalTests/Base/BasketTestStartup.cs index b19d825cd..6c6b08125 100644 --- a/src/Services/Basket/Basket.FunctionalTests/Base/BasketTestStartup.cs +++ b/src/Services/Basket/Basket.FunctionalTests/Base/BasketTestStartup.cs @@ -8,14 +8,14 @@ namespace Basket.FunctionalTests.Base { } - public override IServiceProvider ConfigureServices(IServiceCollection services) + public override void ConfigureServices(IServiceCollection services) { // Added to avoid the Authorize data annotation in test environment. // Property "SuppressCheckForUnhandledSecurityMetadata" in appsettings.json services.Configure(Configuration); - return base.ConfigureServices(services); + base.ConfigureServices(services); } - + protected override void ConfigureAuth(IApplicationBuilder app) { if (Configuration["isTest"] == bool.TrueString.ToLowerInvariant()) diff --git a/src/Services/Catalog/Catalog.API/GlobalUsings.cs b/src/Services/Catalog/Catalog.API/GlobalUsings.cs index 48641cc80..18617a8e5 100644 --- a/src/Services/Catalog/Catalog.API/GlobalUsings.cs +++ b/src/Services/Catalog/Catalog.API/GlobalUsings.cs @@ -1,7 +1,5 @@ global using Azure.Core; global using Azure.Identity; -global using Autofac.Extensions.DependencyInjection; -global using Autofac; global using Microsoft.eShopOnContainers.Services.Catalog.API.Extensions; global using Microsoft.eShopOnContainers.Services.Catalog.API.Infrastructure.ActionResults; global using Microsoft.eShopOnContainers.Services.Catalog.API.Infrastructure.Exceptions; diff --git a/src/Services/Catalog/Catalog.API/Startup.cs b/src/Services/Catalog/Catalog.API/Startup.cs index f7b46cb6f..8a3aa2fd7 100644 --- a/src/Services/Catalog/Catalog.API/Startup.cs +++ b/src/Services/Catalog/Catalog.API/Startup.cs @@ -9,7 +9,7 @@ public class Startup public IConfiguration Configuration { get; } - public IServiceProvider ConfigureServices(IServiceCollection services) + public void ConfigureServices(IServiceCollection services) { services.AddAppInsight(Configuration) .AddGrpc().Services @@ -20,11 +20,6 @@ public class Startup .AddEventBus(Configuration) .AddSwagger(Configuration) .AddCustomHealthCheck(Configuration); - - var container = new ContainerBuilder(); - container.Populate(services); - - return new AutofacServiceProvider(container.Build()); } public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory) @@ -294,13 +289,13 @@ public static class CustomExtensionMethods services.AddSingleton(sp => { var serviceBusPersisterConnection = sp.GetRequiredService(); - var iLifetimeScope = sp.GetRequiredService(); + var serviceScopeFactory = sp.GetRequiredService(); var logger = sp.GetRequiredService>(); var eventBusSubcriptionsManager = sp.GetRequiredService(); string subscriptionName = configuration["SubscriptionClientName"]; return new EventBusServiceBus(serviceBusPersisterConnection, logger, - eventBusSubcriptionsManager, iLifetimeScope, subscriptionName); + eventBusSubcriptionsManager, serviceScopeFactory, subscriptionName); }); } @@ -310,7 +305,7 @@ public static class CustomExtensionMethods { var subscriptionClientName = configuration["SubscriptionClientName"]; var rabbitMQPersistentConnection = sp.GetRequiredService(); - var iLifetimeScope = sp.GetRequiredService(); + var serviceScopeFactory = sp.GetRequiredService(); var logger = sp.GetRequiredService>(); var eventBusSubcriptionsManager = sp.GetRequiredService(); @@ -320,7 +315,7 @@ public static class CustomExtensionMethods retryCount = int.Parse(configuration["EventBusRetryCount"]); } - return new EventBusRabbitMQ(rabbitMQPersistentConnection, logger, iLifetimeScope, eventBusSubcriptionsManager, subscriptionClientName, retryCount); + return new EventBusRabbitMQ(rabbitMQPersistentConnection, logger, serviceScopeFactory, eventBusSubcriptionsManager, subscriptionClientName, retryCount); }); } diff --git a/src/Services/Identity/Identity.API/GlobalUsings.cs b/src/Services/Identity/Identity.API/GlobalUsings.cs index bfbb354db..988128a5b 100644 --- a/src/Services/Identity/Identity.API/GlobalUsings.cs +++ b/src/Services/Identity/Identity.API/GlobalUsings.cs @@ -1,7 +1,5 @@ global using Microsoft.eShopOnContainers.Services.Identity.API.Extensions; global using System.IO.Compression; -global using Autofac.Extensions.DependencyInjection; -global using Autofac; global using Azure.Core; global using Azure.Identity; global using HealthChecks.UI.Client; diff --git a/src/Services/Identity/Identity.API/Identity.API.csproj b/src/Services/Identity/Identity.API/Identity.API.csproj index 0398ccb4b..2ac713767 100644 --- a/src/Services/Identity/Identity.API/Identity.API.csproj +++ b/src/Services/Identity/Identity.API/Identity.API.csproj @@ -17,7 +17,6 @@ - diff --git a/src/Services/Identity/Identity.API/Startup.cs b/src/Services/Identity/Identity.API/Startup.cs index 43662acdd..b2a85e308 100644 --- a/src/Services/Identity/Identity.API/Startup.cs +++ b/src/Services/Identity/Identity.API/Startup.cs @@ -12,7 +12,7 @@ namespace Microsoft.eShopOnContainers.Services.Identity.API public IConfiguration Configuration { get; } // This method gets called by the runtime. Use this method to add services to the container. - public IServiceProvider ConfigureServices(IServiceCollection services) + public void ConfigureServices(IServiceCollection services) { RegisterAppInsights(services); @@ -88,11 +88,6 @@ namespace Microsoft.eShopOnContainers.Services.Identity.API services.AddControllers(); services.AddControllersWithViews(); services.AddRazorPages(); - - var container = new ContainerBuilder(); - container.Populate(services); - - return new AutofacServiceProvider(container.Build()); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. diff --git a/src/Services/Ordering/Ordering.API/GlobalUsings.cs b/src/Services/Ordering/Ordering.API/GlobalUsings.cs index 13c90c84a..07c0a0264 100644 --- a/src/Services/Ordering/Ordering.API/GlobalUsings.cs +++ b/src/Services/Ordering/Ordering.API/GlobalUsings.cs @@ -1,7 +1,5 @@ global using ApiModels = Microsoft.eShopOnContainers.Services.Ordering.API.Application.Models; global using AppCommand = Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands; -global using Autofac.Extensions.DependencyInjection; -global using Autofac; global using Azure.Core; global using Azure.Identity; global using Dapper; @@ -36,7 +34,6 @@ global using Microsoft.eShopOnContainers.Services.Ordering.API.Application.Comma global using Microsoft.eShopOnContainers.Services.Ordering.API.Application.DomainEventHandlers.OrderStartedEvent; global using Microsoft.eShopOnContainers.Services.Ordering.API.Application.DomainEventHandlers.OrderStockConfirmed; global using Microsoft.eShopOnContainers.Services.Ordering.API.Application.IntegrationEvents.EventHandling; -global using Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure.AutofacModules; global using Microsoft.eShopOnContainers.Services.Ordering.API.Application.IntegrationEvents.Events; global using Microsoft.eShopOnContainers.Services.Ordering.API.Application.IntegrationEvents; global using Microsoft.eShopOnContainers.Services.Ordering.API.Application.Models; diff --git a/src/Services/Ordering/Ordering.API/Infrastructure/AutofacModules/ApplicationModule.cs b/src/Services/Ordering/Ordering.API/Infrastructure/AutofacModules/ApplicationModule.cs deleted file mode 100644 index 1ab775042..000000000 --- a/src/Services/Ordering/Ordering.API/Infrastructure/AutofacModules/ApplicationModule.cs +++ /dev/null @@ -1,38 +0,0 @@ -namespace Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure.AutofacModules; - -public class ApplicationModule - : Autofac.Module -{ - - public string QueriesConnectionString { get; } - - public ApplicationModule(string qconstr) - { - QueriesConnectionString = qconstr; - - } - - protected override void Load(ContainerBuilder builder) - { - - builder.Register(c => new OrderQueries(QueriesConnectionString)) - .As() - .InstancePerLifetimeScope(); - - builder.RegisterType() - .As() - .InstancePerLifetimeScope(); - - builder.RegisterType() - .As() - .InstancePerLifetimeScope(); - - builder.RegisterType() - .As() - .InstancePerLifetimeScope(); - - builder.RegisterAssemblyTypes(typeof(CreateOrderCommandHandler).GetTypeInfo().Assembly) - .AsClosedTypesOf(typeof(IIntegrationEventHandler<>)); - - } -} diff --git a/src/Services/Ordering/Ordering.API/Infrastructure/AutofacModules/MediatorModule.cs b/src/Services/Ordering/Ordering.API/Infrastructure/AutofacModules/MediatorModule.cs deleted file mode 100644 index 2d59f1730..000000000 --- a/src/Services/Ordering/Ordering.API/Infrastructure/AutofacModules/MediatorModule.cs +++ /dev/null @@ -1,36 +0,0 @@ -namespace Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure.AutofacModules; - -public class MediatorModule : Autofac.Module -{ - protected override void Load(ContainerBuilder builder) - { - builder.RegisterAssemblyTypes(typeof(IMediator).GetTypeInfo().Assembly) - .AsImplementedInterfaces(); - - // Register all the Command classes (they implement IRequestHandler) in assembly holding the Commands - builder.RegisterAssemblyTypes(typeof(CreateOrderCommand).GetTypeInfo().Assembly) - .AsClosedTypesOf(typeof(IRequestHandler<,>)); - - // Register the DomainEventHandler classes (they implement INotificationHandler<>) in assembly holding the Domain Events - builder.RegisterAssemblyTypes(typeof(ValidateOrAddBuyerAggregateWhenOrderStartedDomainEventHandler).GetTypeInfo().Assembly) - .AsClosedTypesOf(typeof(INotificationHandler<>)); - - // Register the Command's Validators (Validators based on FluentValidation library) - builder - .RegisterAssemblyTypes(typeof(CreateOrderCommandValidator).GetTypeInfo().Assembly) - .Where(t => t.IsClosedTypeOf(typeof(IValidator<>))) - .AsImplementedInterfaces(); - - - builder.Register(context => - { - var componentContext = context.Resolve(); - return t => { object o; return componentContext.TryResolve(t, out o) ? o : null; }; - }); - - builder.RegisterGeneric(typeof(LoggingBehavior<,>)).As(typeof(IPipelineBehavior<,>)); - builder.RegisterGeneric(typeof(ValidatorBehavior<,>)).As(typeof(IPipelineBehavior<,>)); - builder.RegisterGeneric(typeof(TransactionBehaviour<,>)).As(typeof(IPipelineBehavior<,>)); - - } -} diff --git a/src/Services/Ordering/Ordering.API/Ordering.API.csproj b/src/Services/Ordering/Ordering.API/Ordering.API.csproj index 5b011d037..c92b59071 100644 --- a/src/Services/Ordering/Ordering.API/Ordering.API.csproj +++ b/src/Services/Ordering/Ordering.API/Ordering.API.csproj @@ -40,7 +40,6 @@ - diff --git a/src/Services/Ordering/Ordering.API/Startup.cs b/src/Services/Ordering/Ordering.API/Startup.cs index 501a55361..961cb866e 100644 --- a/src/Services/Ordering/Ordering.API/Startup.cs +++ b/src/Services/Ordering/Ordering.API/Startup.cs @@ -9,7 +9,7 @@ public class Startup public IConfiguration Configuration { get; } - public virtual IServiceProvider ConfigureServices(IServiceCollection services) + public virtual void ConfigureServices(IServiceCollection services) { services .AddGrpc(options => @@ -25,16 +25,13 @@ public class Startup .AddCustomIntegrations(Configuration) .AddCustomConfiguration(Configuration) .AddEventBus(Configuration) - .AddCustomAuthentication(Configuration); - //configure autofac - - var container = new ContainerBuilder(); - container.Populate(services); - - container.RegisterModule(new MediatorModule()); - container.RegisterModule(new ApplicationModule(Configuration["ConnectionString"])); - - return new AutofacServiceProvider(container.Build()); + .AddCustomAuthentication(Configuration) + .AddScoped(sp => new OrderQueries(Configuration["ConnectionString"])) + .AddScoped() + .AddScoped() + .AddScoped() + .AddEventHandlers(typeof(CreateOrderCommandHandler).GetTypeInfo().Assembly) + .AddMediatR(Assembly.GetExecutingAssembly()); } @@ -332,13 +329,13 @@ static class CustomExtensionsMethods services.AddSingleton(sp => { var serviceBusPersisterConnection = sp.GetRequiredService(); - var iLifetimeScope = sp.GetRequiredService(); + var serviceScopeFactory = sp.GetRequiredService(); var logger = sp.GetRequiredService>(); var eventBusSubcriptionsManager = sp.GetRequiredService(); string subscriptionName = configuration["SubscriptionClientName"]; return new EventBusServiceBus(serviceBusPersisterConnection, logger, - eventBusSubcriptionsManager, iLifetimeScope, subscriptionName); + eventBusSubcriptionsManager, serviceScopeFactory, subscriptionName); }); } else @@ -347,7 +344,7 @@ static class CustomExtensionsMethods { var subscriptionClientName = configuration["SubscriptionClientName"]; var rabbitMQPersistentConnection = sp.GetRequiredService(); - var iLifetimeScope = sp.GetRequiredService(); + var serviceScopeFactory = sp.GetRequiredService(); var logger = sp.GetRequiredService>(); var eventBusSubcriptionsManager = sp.GetRequiredService(); @@ -357,7 +354,7 @@ static class CustomExtensionsMethods retryCount = int.Parse(configuration["EventBusRetryCount"]); } - return new EventBusRabbitMQ(rabbitMQPersistentConnection, logger, iLifetimeScope, eventBusSubcriptionsManager, subscriptionClientName, retryCount); + return new EventBusRabbitMQ(rabbitMQPersistentConnection, logger, serviceScopeFactory, eventBusSubcriptionsManager, subscriptionClientName, retryCount); }); } diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/Extensions/CustomExtensionMethods.cs b/src/Services/Ordering/Ordering.BackgroundTasks/Extensions/CustomExtensionMethods.cs index b7164734e..0e34fc73b 100644 --- a/src/Services/Ordering/Ordering.BackgroundTasks/Extensions/CustomExtensionMethods.cs +++ b/src/Services/Ordering/Ordering.BackgroundTasks/Extensions/CustomExtensionMethods.cs @@ -1,5 +1,4 @@ -using Autofac; -using Azure.Messaging.ServiceBus; +using Azure.Messaging.ServiceBus; using Microsoft.eShopOnContainers.BuildingBlocks.EventBus; using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Abstractions; using Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ; @@ -61,12 +60,12 @@ namespace Ordering.BackgroundTasks.Extensions services.AddSingleton(sp => { var serviceBusPersisterConnection = sp.GetRequiredService(); - var iLifetimeScope = sp.GetRequiredService(); + var serviceScopeFactory = sp.GetRequiredService(); var logger = sp.GetRequiredService>(); var eventBusSubcriptionsManager = sp.GetRequiredService(); string subscriptionName = configuration["SubscriptionClientName"]; - return new EventBusServiceBus(serviceBusPersisterConnection, logger, eventBusSubcriptionsManager, iLifetimeScope, subscriptionName); + return new EventBusServiceBus(serviceBusPersisterConnection, logger, eventBusSubcriptionsManager, serviceScopeFactory, subscriptionName); }); } else @@ -104,7 +103,7 @@ namespace Ordering.BackgroundTasks.Extensions services.AddSingleton(sp => { var rabbitMQPersistentConnection = sp.GetRequiredService(); - var iLifetimeScope = sp.GetRequiredService(); + var serviceScopeFactory = sp.GetRequiredService(); var logger = sp.GetRequiredService>(); var eventBusSubcriptionsManager = sp.GetRequiredService(); @@ -115,7 +114,7 @@ namespace Ordering.BackgroundTasks.Extensions retryCount = int.Parse(configuration["EventBusRetryCount"]); } - return new EventBusRabbitMQ(rabbitMQPersistentConnection, logger, iLifetimeScope, eventBusSubcriptionsManager, subscriptionClientName, retryCount); + return new EventBusRabbitMQ(rabbitMQPersistentConnection, logger, serviceScopeFactory, eventBusSubcriptionsManager, subscriptionClientName, retryCount); }); } diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj b/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj index 617ccda32..7a223d69f 100644 --- a/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj +++ b/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj @@ -12,8 +12,6 @@ - - diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/Program.cs b/src/Services/Ordering/Ordering.BackgroundTasks/Program.cs index ab30ba2d9..9d5bc3f32 100644 --- a/src/Services/Ordering/Ordering.BackgroundTasks/Program.cs +++ b/src/Services/Ordering/Ordering.BackgroundTasks/Program.cs @@ -1,4 +1,3 @@ -using Autofac.Extensions.DependencyInjection; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Hosting; @@ -19,7 +18,6 @@ namespace Ordering.BackgroundTasks public static IHost CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) - .UseServiceProviderFactory(new AutofacServiceProviderFactory()) .ConfigureWebHostDefaults(webBuilder => webBuilder.UseStartup()) .ConfigureAppConfiguration((host, builder) => { diff --git a/src/Services/Ordering/Ordering.FunctionalTests/OrderingTestStartup.cs b/src/Services/Ordering/Ordering.FunctionalTests/OrderingTestStartup.cs index 7367042de..e890044c3 100644 --- a/src/Services/Ordering/Ordering.FunctionalTests/OrderingTestStartup.cs +++ b/src/Services/Ordering/Ordering.FunctionalTests/OrderingTestStartup.cs @@ -6,12 +6,12 @@ public class OrderingTestsStartup : Startup { } - public override IServiceProvider ConfigureServices(IServiceCollection services) + public override void ConfigureServices(IServiceCollection services) { // Added to avoid the Authorize data annotation in test environment. // Property "SuppressCheckForUnhandledSecurityMetadata" in appsettings.json services.Configure(Configuration); - return base.ConfigureServices(services); + base.ConfigureServices(services); } protected override void ConfigureAuth(IApplicationBuilder app) { diff --git a/src/Services/Ordering/Ordering.SignalrHub/AutofacModules/ApplicationModule.cs b/src/Services/Ordering/Ordering.SignalrHub/AutofacModules/ApplicationModule.cs deleted file mode 100644 index 9d28154ea..000000000 --- a/src/Services/Ordering/Ordering.SignalrHub/AutofacModules/ApplicationModule.cs +++ /dev/null @@ -1,20 +0,0 @@ -namespace Microsoft.eShopOnContainers.Services.Ordering.SignalrHub.AutofacModules; - -public class ApplicationModule - : Autofac.Module -{ - - public string QueriesConnectionString { get; } - - public ApplicationModule() - { - } - - protected override void Load(ContainerBuilder builder) - { - - builder.RegisterAssemblyTypes(typeof(OrderStatusChangedToAwaitingValidationIntegrationEvent).GetTypeInfo().Assembly) - .AsClosedTypesOf(typeof(IIntegrationEventHandler<>)); - - } -} diff --git a/src/Services/Ordering/Ordering.SignalrHub/GlobalUsings.cs b/src/Services/Ordering/Ordering.SignalrHub/GlobalUsings.cs index 5a5a12391..2784a4799 100644 --- a/src/Services/Ordering/Ordering.SignalrHub/GlobalUsings.cs +++ b/src/Services/Ordering/Ordering.SignalrHub/GlobalUsings.cs @@ -1,6 +1,4 @@ -global using Autofac.Extensions.DependencyInjection; -global using Autofac; -global using HealthChecks.UI.Client; +global using HealthChecks.UI.Client; global using Microsoft.AspNetCore.Authentication.JwtBearer; global using Microsoft.AspNetCore.Authorization; global using Microsoft.AspNetCore.Builder; @@ -20,7 +18,6 @@ global using Microsoft.Extensions.Configuration; global using Microsoft.Extensions.DependencyInjection; global using Microsoft.Extensions.Diagnostics.HealthChecks; global using Microsoft.Extensions.Logging; -global using Microsoft.eShopOnContainers.Services.Ordering.SignalrHub.AutofacModules; global using Microsoft.eShopOnContainers.Services.Ordering.SignalrHub.IntegrationEvents.EventHandling; global using Microsoft.eShopOnContainers.Services.Ordering.SignalrHub.IntegrationEvents.Events; global using Microsoft.eShopOnContainers.Services.Ordering.SignalrHub.IntegrationEvents; diff --git a/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj b/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj index 9b9579855..ea0b4a58f 100644 --- a/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj +++ b/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj @@ -15,7 +15,6 @@ - diff --git a/src/Services/Ordering/Ordering.SignalrHub/Startup.cs b/src/Services/Ordering/Ordering.SignalrHub/Startup.cs index b57f4477e..e68406e55 100644 --- a/src/Services/Ordering/Ordering.SignalrHub/Startup.cs +++ b/src/Services/Ordering/Ordering.SignalrHub/Startup.cs @@ -11,7 +11,7 @@ public class Startup // This method gets called by the runtime. Use this method to add services to the container. // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940 - public IServiceProvider ConfigureServices(IServiceCollection services) + public void ConfigureServices(IServiceCollection services) { services .AddCustomHealthCheck(Configuration) @@ -86,12 +86,7 @@ public class Startup services.AddOptions(); - //configure autofac - var container = new ContainerBuilder(); - container.RegisterModule(new ApplicationModule()); - container.Populate(services); - - return new AutofacServiceProvider(container.Build()); + services.AddEventHandlers(typeof(OrderStatusChangedToAwaitingValidationIntegrationEvent).GetTypeInfo().Assembly); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. @@ -185,13 +180,13 @@ public class Startup services.AddSingleton(sp => { var serviceBusPersisterConnection = sp.GetRequiredService(); - var iLifetimeScope = sp.GetRequiredService(); + var serviceScopeFactory = sp.GetRequiredService(); var logger = sp.GetRequiredService>(); var eventBusSubcriptionsManager = sp.GetRequiredService(); string subscriptionName = Configuration["SubscriptionClientName"]; return new EventBusServiceBus(serviceBusPersisterConnection, logger, - eventBusSubcriptionsManager, iLifetimeScope, subscriptionName); + eventBusSubcriptionsManager, serviceScopeFactory, subscriptionName); }); } else @@ -200,7 +195,7 @@ public class Startup { var subscriptionClientName = Configuration["SubscriptionClientName"]; var rabbitMQPersistentConnection = sp.GetRequiredService(); - var iLifetimeScope = sp.GetRequiredService(); + var serviceScopeFactory = sp.GetRequiredService(); var logger = sp.GetRequiredService>(); var eventBusSubcriptionsManager = sp.GetRequiredService(); @@ -210,7 +205,7 @@ public class Startup retryCount = int.Parse(Configuration["EventBusRetryCount"]); } - return new EventBusRabbitMQ(rabbitMQPersistentConnection, logger, iLifetimeScope, eventBusSubcriptionsManager, subscriptionClientName, retryCount); + return new EventBusRabbitMQ(rabbitMQPersistentConnection, logger, serviceScopeFactory, eventBusSubcriptionsManager, subscriptionClientName, retryCount); }); } diff --git a/src/Services/Payment/Payment.API/GlobalUsings.cs b/src/Services/Payment/Payment.API/GlobalUsings.cs index e87eb53bb..5d83c1f23 100644 --- a/src/Services/Payment/Payment.API/GlobalUsings.cs +++ b/src/Services/Payment/Payment.API/GlobalUsings.cs @@ -1,6 +1,4 @@ -global using Autofac.Extensions.DependencyInjection; -global using Autofac; -global using Azure.Core; +global using Azure.Core; global using Azure.Identity; global using HealthChecks.UI.Client; global using Microsoft.AspNetCore.Diagnostics.HealthChecks; diff --git a/src/Services/Payment/Payment.API/Payment.API.csproj b/src/Services/Payment/Payment.API/Payment.API.csproj index ad930772a..5d741b0ee 100644 --- a/src/Services/Payment/Payment.API/Payment.API.csproj +++ b/src/Services/Payment/Payment.API/Payment.API.csproj @@ -12,8 +12,7 @@ - - + diff --git a/src/Services/Payment/Payment.API/Startup.cs b/src/Services/Payment/Payment.API/Startup.cs index c880f2a75..3698a1a47 100644 --- a/src/Services/Payment/Payment.API/Startup.cs +++ b/src/Services/Payment/Payment.API/Startup.cs @@ -10,7 +10,7 @@ public class Startup public IConfiguration Configuration { get; } // This method gets called by the runtime. Use this method to add services to the container. - public IServiceProvider ConfigureServices(IServiceCollection services) + public void ConfigureServices(IServiceCollection services) { services.AddCustomHealthCheck(Configuration); services.Configure(Configuration); @@ -59,10 +59,6 @@ public class Startup } RegisterEventBus(services); - - var container = new ContainerBuilder(); - container.Populate(services); - return new AutofacServiceProvider(container.Build()); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. @@ -107,13 +103,13 @@ public class Startup services.AddSingleton(sp => { var serviceBusPersisterConnection = sp.GetRequiredService(); - var iLifetimeScope = sp.GetRequiredService(); + var serviceScopeFactory = sp.GetRequiredService(); var logger = sp.GetRequiredService>(); var eventBusSubcriptionsManager = sp.GetRequiredService(); string subscriptionName = Configuration["SubscriptionClientName"]; return new EventBusServiceBus(serviceBusPersisterConnection, logger, - eventBusSubcriptionsManager, iLifetimeScope, subscriptionName); + eventBusSubcriptionsManager, serviceScopeFactory, subscriptionName); }); } else @@ -122,7 +118,7 @@ public class Startup { var subscriptionClientName = Configuration["SubscriptionClientName"]; var rabbitMQPersistentConnection = sp.GetRequiredService(); - var iLifetimeScope = sp.GetRequiredService(); + var serviceScopeFactory = sp.GetRequiredService(); var logger = sp.GetRequiredService>(); var eventBusSubcriptionsManager = sp.GetRequiredService(); @@ -132,7 +128,7 @@ public class Startup retryCount = int.Parse(Configuration["EventBusRetryCount"]); } - return new EventBusRabbitMQ(rabbitMQPersistentConnection, logger, iLifetimeScope, eventBusSubcriptionsManager, subscriptionClientName, retryCount); + return new EventBusRabbitMQ(rabbitMQPersistentConnection, logger, serviceScopeFactory, eventBusSubcriptionsManager, subscriptionClientName, retryCount); }); } diff --git a/src/Services/Webhooks/Webhooks.API/GlobalUsings.cs b/src/Services/Webhooks/Webhooks.API/GlobalUsings.cs index c575b7235..e45a004ca 100644 --- a/src/Services/Webhooks/Webhooks.API/GlobalUsings.cs +++ b/src/Services/Webhooks/Webhooks.API/GlobalUsings.cs @@ -1,6 +1,4 @@ -global using Autofac.Extensions.DependencyInjection; -global using Autofac; -global using Devspaces.Support; +global using Devspaces.Support; global using HealthChecks.UI.Client; global using Microsoft.AspNetCore.Authentication.JwtBearer; global using Microsoft.AspNetCore.Authorization; diff --git a/src/Services/Webhooks/Webhooks.API/Startup.cs b/src/Services/Webhooks/Webhooks.API/Startup.cs index 256941efa..98118ceb5 100644 --- a/src/Services/Webhooks/Webhooks.API/Startup.cs +++ b/src/Services/Webhooks/Webhooks.API/Startup.cs @@ -9,7 +9,7 @@ public class Startup } - public IServiceProvider ConfigureServices(IServiceCollection services) + public void ConfigureServices(IServiceCollection services) { services .AddAppInsight(Configuration) @@ -27,10 +27,6 @@ public class Startup .AddTransient() .AddTransient() .AddTransient(); - - var container = new ContainerBuilder(); - container.Populate(services); - return new AutofacServiceProvider(container.Build()); } public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory) @@ -175,13 +171,13 @@ static class CustomExtensionMethods services.AddSingleton(sp => { var serviceBusPersisterConnection = sp.GetRequiredService(); - var iLifetimeScope = sp.GetRequiredService(); + var serviceScopeFactory = sp.GetRequiredService(); var logger = sp.GetRequiredService>(); var eventBusSubcriptionsManager = sp.GetRequiredService(); string subscriptionName = configuration["SubscriptionClientName"]; return new EventBusServiceBus(serviceBusPersisterConnection, logger, - eventBusSubcriptionsManager, iLifetimeScope, subscriptionName); + eventBusSubcriptionsManager, serviceScopeFactory, subscriptionName); }); } @@ -191,7 +187,7 @@ static class CustomExtensionMethods { var subscriptionClientName = configuration["SubscriptionClientName"]; var rabbitMQPersistentConnection = sp.GetRequiredService(); - var iLifetimeScope = sp.GetRequiredService(); + var serviceScopeFactory = sp.GetRequiredService(); var logger = sp.GetRequiredService>(); var eventBusSubcriptionsManager = sp.GetRequiredService(); @@ -201,7 +197,7 @@ static class CustomExtensionMethods retryCount = int.Parse(configuration["EventBusRetryCount"]); } - return new EventBusRabbitMQ(rabbitMQPersistentConnection, logger, iLifetimeScope, eventBusSubcriptionsManager, subscriptionClientName, retryCount); + return new EventBusRabbitMQ(rabbitMQPersistentConnection, logger, serviceScopeFactory, eventBusSubcriptionsManager, subscriptionClientName, retryCount); }); } diff --git a/src/Services/Webhooks/Webhooks.API/Webhooks.API.csproj b/src/Services/Webhooks/Webhooks.API/Webhooks.API.csproj index 063a01cf3..fb086fbc7 100644 --- a/src/Services/Webhooks/Webhooks.API/Webhooks.API.csproj +++ b/src/Services/Webhooks/Webhooks.API/Webhooks.API.csproj @@ -12,7 +12,6 @@ - diff --git a/src/Web/WebMVC/Services/OrderingService.cs b/src/Web/WebMVC/Services/OrderingService.cs index f1422c51f..074f33353 100644 --- a/src/Web/WebMVC/Services/OrderingService.cs +++ b/src/Web/WebMVC/Services/OrderingService.cs @@ -36,7 +36,7 @@ public class OrderingService : IOrderingService var uri = API.Order.GetAllMyOrders(_remoteServiceBaseUrl); var responseString = await _httpClient.GetStringAsync(uri); - + var response = JsonSerializer.Deserialize>(responseString, new JsonSerializerOptions { PropertyNameCaseInsensitive = true diff --git a/src/docker-compose.override.yml b/src/docker-compose.override.yml index 8251636e9..0c11671d5 100644 --- a/src/docker-compose.override.yml +++ b/src/docker-compose.override.yml @@ -20,7 +20,7 @@ services: ports: - "5433:1433" volumes: - - eshop-sqldata:/var/opt/mssql + - eshop-sqldata:/var/opt/mssql/data nosqldata: ports: