From 2f3df2715d2deb5520044cb351144641b8d8f7c7 Mon Sep 17 00:00:00 2001 From: Charles Lowell Date: Wed, 15 Mar 2017 08:57:01 -0700 Subject: [PATCH 01/15] Set data protection application discriminators This prevents cookie confusion when applications are hosted at the same domain and path. For example, under default settings, WebMVC may attempt to decrypt Identity's antiforgery cookie rather than its own. --- src/Services/Identity/Identity.API/Startup.cs | 5 +++++ src/Web/WebMVC/Startup.cs | 5 +++++ src/Web/WebSPA/Startup.cs | 5 +++++ 3 files changed, 15 insertions(+) diff --git a/src/Services/Identity/Identity.API/Startup.cs b/src/Services/Identity/Identity.API/Startup.cs index d29459395..81c26eb16 100644 --- a/src/Services/Identity/Identity.API/Startup.cs +++ b/src/Services/Identity/Identity.API/Startup.cs @@ -54,6 +54,11 @@ namespace eShopOnContainers.Identity services.Configure(Configuration); + services.AddDataProtection(opts => + { + opts.ApplicationDiscriminator = "eshop.identity"; + }); + services.AddMvc(); services.AddTransient(); diff --git a/src/Web/WebMVC/Startup.cs b/src/Web/WebMVC/Startup.cs index ee2412bee..f6ac17e6f 100644 --- a/src/Web/WebMVC/Startup.cs +++ b/src/Web/WebMVC/Startup.cs @@ -42,6 +42,11 @@ namespace Microsoft.eShopOnContainers.WebMVC // This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { + services.AddDataProtection(opts => + { + opts.ApplicationDiscriminator = "eshop.webmvc"; + }); + services.AddMvc(); services.Configure(Configuration); diff --git a/src/Web/WebSPA/Startup.cs b/src/Web/WebSPA/Startup.cs index a0f33d8b3..1386849f7 100644 --- a/src/Web/WebSPA/Startup.cs +++ b/src/Web/WebSPA/Startup.cs @@ -41,6 +41,11 @@ namespace eShopConContainers.WebSPA { services.Configure(Configuration); + services.AddDataProtection(opts => + { + opts.ApplicationDiscriminator = "eshop.webspa"; + }); + services.AddAntiforgery(options => options.HeaderName = "X-XSRF-TOKEN"); services.AddMvc() From eba2ea8bf9d09ceae4f40dacf2230763c7f2a4d3 Mon Sep 17 00:00:00 2001 From: Charles Lowell Date: Tue, 21 Mar 2017 10:19:11 -0700 Subject: [PATCH 02/15] Support IP address connection string in Basket.API Dns.GetHostAddressesAsync can return problematic results when passed an IP address, and if the connection string is already an IP address, we needn't call it anyway. --- .../Basket.API/Model/RedisBasketRepository.cs | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/Services/Basket/Basket.API/Model/RedisBasketRepository.cs b/src/Services/Basket/Basket.API/Model/RedisBasketRepository.cs index fc5c256f8..393e9ae7b 100644 --- a/src/Services/Basket/Basket.API/Model/RedisBasketRepository.cs +++ b/src/Services/Basket/Basket.API/Model/RedisBasketRepository.cs @@ -94,13 +94,21 @@ namespace Microsoft.eShopOnContainers.Services.Basket.API.Model private async Task ConnectToRedisAsync() { - //TODO: Need to make this more robust. Also want to understand why the static connection method cannot accept dns names. - var ips = await Dns.GetHostAddressesAsync(_settings.ConnectionString); - _logger.LogInformation($"Connecting to database {_settings.ConnectionString} at IP {ips.First().ToString()}"); - _redis = await ConnectionMultiplexer.ConnectAsync(ips.First().ToString()); + // TODO: Need to make this more robust. ConnectionMultiplexer.ConnectAsync doesn't like domain names or IPv6 addresses. + if (IPAddress.TryParse(_settings.ConnectionString, out var ip)) + { + _redis = await ConnectionMultiplexer.ConnectAsync(ip.ToString()); + _logger.LogInformation($"Connecting to database at {_settings.ConnectionString}"); + } + else + { + // workaround for https://github.com/StackExchange/StackExchange.Redis/issues/410 + var ips = await Dns.GetHostAddressesAsync(_settings.ConnectionString); + _logger.LogInformation($"Connecting to database {_settings.ConnectionString} at IP {ips.First().ToString()}"); + _redis = await ConnectionMultiplexer.ConnectAsync(ips.First().ToString()); + } } - - + } } From 33281474afe907d5607e04168573755e30a28bc6 Mon Sep 17 00:00:00 2001 From: Cesar De la Torre Date: Sat, 8 Apr 2017 12:06:51 -0700 Subject: [PATCH 03/15] Minor change in label --- src/Web/WebMVC/Views/Shared/Components/CartList/Default.cshtml | 2 +- src/Web/WebSPA/Client/modules/basket/basket.component.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Web/WebMVC/Views/Shared/Components/CartList/Default.cshtml b/src/Web/WebMVC/Views/Shared/Components/CartList/Default.cshtml index 43d3b9f55..99a9bfc1e 100644 --- a/src/Web/WebMVC/Views/Shared/Components/CartList/Default.cshtml +++ b/src/Web/WebMVC/Views/Shared/Components/CartList/Default.cshtml @@ -38,7 +38,7 @@
@if (item.OldUnitPrice != 0) { - + }

diff --git a/src/Web/WebSPA/Client/modules/basket/basket.component.html b/src/Web/WebSPA/Client/modules/basket/basket.component.html index a23a4e91f..3f27b0290 100644 --- a/src/Web/WebSPA/Client/modules/basket/basket.component.html +++ b/src/Web/WebSPA/Client/modules/basket/basket.component.html @@ -29,7 +29,7 @@
- +
From c33513303da831e39d71507903a46ec54aeb6e5b Mon Sep 17 00:00:00 2001 From: Unai Zorrilla Castro Date: Mon, 17 Apr 2017 12:28:12 +0200 Subject: [PATCH 04/15] Review on 17/04/2017 --- .../Basket/Basket.API/BasketSettings.cs | 7 +- .../InternalServerErrorObjectResult.cs | 4 -- .../OrderStartedIntegrationEventHandler.cs | 5 +- ...ductPriceChangedIntegrationEventHandler.cs | 9 ++- .../Events/OrderStartedIntegrationEvent.cs | 4 -- .../ProductPriceChangedIntegrationEvent.cs | 3 - .../Basket.API/Model/IBasketRepository.cs | 6 +- .../Basket.API/Model/RedisBasketRepository.cs | 20 +++--- src/Services/Basket/Basket.API/Startup.cs | 70 +++++++++++-------- .../Catalog/Catalog.API/CatalogSettings.cs | 9 +++ .../Controllers/CatalogController.cs | 49 +++++++------ .../Catalog.API/Controllers/HomeController.cs | 6 +- .../Catalog.API/Controllers/PicController.cs | 12 ++-- .../InternalServerErrorObjectResult.cs | 4 -- .../Exceptions/CatalogDomainException.cs | 3 - .../CatalogIntegrationEventService.cs | 1 + .../ICatalogIntegrationEventService.cs | 3 - .../Catalog/Catalog.API/Model/CatalogBrand.cs | 6 -- .../Catalog/Catalog.API/Model/CatalogType.cs | 5 -- src/Services/Catalog/Catalog.API/Startup.cs | 44 +++++++----- src/Services/Catalog/Catalog.API/settings.cs | 14 ---- .../Commands/IdentifierCommandHandler.cs | 6 +- .../Application/Queries/IOrderQueries.cs | 6 +- .../Application/Queries/OrderQueries.cs | 6 +- .../CreateOrderCommandValidator.cs | 24 +++---- .../Validations/IdentifierCommandValidator.cs | 6 +- .../Controllers/OrdersController.cs | 10 ++- src/Services/Ordering/Ordering.API/Startup.cs | 16 ++--- .../AggregatesModel/BuyerAggregate/Buyer.cs | 4 ++ .../OrderAggregate/IOrderRepository.cs | 4 +- .../Ordering.Domain/SeedWork/Enumeration.cs | 6 +- .../{ => Idempotency}/ClientRequest.cs | 4 +- .../Idempotency/IRequestManager.cs | 3 +- .../Idempotency/RequestManager.cs | 20 +++--- .../MediatorExtension.cs | 15 ++-- .../OrderingContext.cs | 3 +- .../Ordering/Application/OrdersWebApiTest.cs | 6 +- 37 files changed, 207 insertions(+), 216 deletions(-) create mode 100644 src/Services/Catalog/Catalog.API/CatalogSettings.cs delete mode 100644 src/Services/Catalog/Catalog.API/settings.cs rename src/Services/Ordering/Ordering.Infrastructure/{ => Idempotency}/ClientRequest.cs (80%) diff --git a/src/Services/Basket/Basket.API/BasketSettings.cs b/src/Services/Basket/Basket.API/BasketSettings.cs index 6aae45015..9d143545a 100644 --- a/src/Services/Basket/Basket.API/BasketSettings.cs +++ b/src/Services/Basket/Basket.API/BasketSettings.cs @@ -1,9 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; - -namespace Microsoft.eShopOnContainers.Services.Basket.API +namespace Microsoft.eShopOnContainers.Services.Basket.API { public class BasketSettings { diff --git a/src/Services/Basket/Basket.API/Infrastructure/ActionResults/InternalServerErrorObjectResult.cs b/src/Services/Basket/Basket.API/Infrastructure/ActionResults/InternalServerErrorObjectResult.cs index 2ec3727a6..a0b988156 100644 --- a/src/Services/Basket/Basket.API/Infrastructure/ActionResults/InternalServerErrorObjectResult.cs +++ b/src/Services/Basket/Basket.API/Infrastructure/ActionResults/InternalServerErrorObjectResult.cs @@ -1,9 +1,5 @@ using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; namespace Basket.API.Infrastructure.ActionResults { diff --git a/src/Services/Basket/Basket.API/IntegrationEvents/EventHandling/OrderStartedIntegrationEventHandler.cs b/src/Services/Basket/Basket.API/IntegrationEvents/EventHandling/OrderStartedIntegrationEventHandler.cs index e35badc64..19ae1b594 100644 --- a/src/Services/Basket/Basket.API/IntegrationEvents/EventHandling/OrderStartedIntegrationEventHandler.cs +++ b/src/Services/Basket/Basket.API/IntegrationEvents/EventHandling/OrderStartedIntegrationEventHandler.cs @@ -2,8 +2,6 @@ using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Abstractions; using Microsoft.eShopOnContainers.Services.Basket.API.Model; using System; -using System.Collections.Generic; -using System.Linq; using System.Threading.Tasks; namespace Basket.API.IntegrationEvents.EventHandling @@ -11,9 +9,10 @@ namespace Basket.API.IntegrationEvents.EventHandling public class OrderStartedIntegrationEventHandler : IIntegrationEventHandler { private readonly IBasketRepository _repository; + public OrderStartedIntegrationEventHandler(IBasketRepository repository) { - _repository = repository; + _repository = repository ?? throw new ArgumentNullException(nameof(repository)); } public async Task Handle(OrderStartedIntegrationEvent @event) diff --git a/src/Services/Basket/Basket.API/IntegrationEvents/EventHandling/ProductPriceChangedIntegrationEventHandler.cs b/src/Services/Basket/Basket.API/IntegrationEvents/EventHandling/ProductPriceChangedIntegrationEventHandler.cs index 50d6b9e25..88244404a 100644 --- a/src/Services/Basket/Basket.API/IntegrationEvents/EventHandling/ProductPriceChangedIntegrationEventHandler.cs +++ b/src/Services/Basket/Basket.API/IntegrationEvents/EventHandling/ProductPriceChangedIntegrationEventHandler.cs @@ -1,6 +1,7 @@ using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Abstractions; using Microsoft.eShopOnContainers.Services.Basket.API.IntegrationEvents.Events; using Microsoft.eShopOnContainers.Services.Basket.API.Model; +using System; using System.Linq; using System.Threading.Tasks; @@ -9,17 +10,20 @@ namespace Microsoft.eShopOnContainers.Services.Basket.API.IntegrationEvents.Even public class ProductPriceChangedIntegrationEventHandler : IIntegrationEventHandler { private readonly IBasketRepository _repository; + public ProductPriceChangedIntegrationEventHandler(IBasketRepository repository) { - _repository = repository; + _repository = repository ?? throw new ArgumentNullException(nameof(repository)); } public async Task Handle(ProductPriceChangedIntegrationEvent @event) { - var userIds = await _repository.GetUsers(); + var userIds = await _repository.GetUsersAsync(); + foreach (var id in userIds) { var basket = await _repository.GetBasketAsync(id); + await UpdatePriceInBasketItems(@event.ProductId, @event.NewPrice, @event.OldPrice, basket); } } @@ -27,6 +31,7 @@ namespace Microsoft.eShopOnContainers.Services.Basket.API.IntegrationEvents.Even private async Task UpdatePriceInBasketItems(int productId, decimal newPrice, decimal oldPrice, CustomerBasket basket) { var itemsToUpdate = basket?.Items?.Where(x => int.Parse(x.ProductId) == productId).ToList(); + if (itemsToUpdate != null) { foreach (var item in itemsToUpdate) diff --git a/src/Services/Basket/Basket.API/IntegrationEvents/Events/OrderStartedIntegrationEvent.cs b/src/Services/Basket/Basket.API/IntegrationEvents/Events/OrderStartedIntegrationEvent.cs index 3b5726e83..a32ad0beb 100644 --- a/src/Services/Basket/Basket.API/IntegrationEvents/Events/OrderStartedIntegrationEvent.cs +++ b/src/Services/Basket/Basket.API/IntegrationEvents/Events/OrderStartedIntegrationEvent.cs @@ -1,8 +1,4 @@ using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Events; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; namespace Basket.API.IntegrationEvents.Events { diff --git a/src/Services/Basket/Basket.API/IntegrationEvents/Events/ProductPriceChangedIntegrationEvent.cs b/src/Services/Basket/Basket.API/IntegrationEvents/Events/ProductPriceChangedIntegrationEvent.cs index 87d2e9e81..6f51010be 100644 --- a/src/Services/Basket/Basket.API/IntegrationEvents/Events/ProductPriceChangedIntegrationEvent.cs +++ b/src/Services/Basket/Basket.API/IntegrationEvents/Events/ProductPriceChangedIntegrationEvent.cs @@ -1,7 +1,4 @@ using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Events; -using System; -using System.Collections.Generic; -using System.Text; namespace Microsoft.eShopOnContainers.Services.Basket.API.IntegrationEvents.Events { diff --git a/src/Services/Basket/Basket.API/Model/IBasketRepository.cs b/src/Services/Basket/Basket.API/Model/IBasketRepository.cs index 7f75ea342..fcdc69faa 100644 --- a/src/Services/Basket/Basket.API/Model/IBasketRepository.cs +++ b/src/Services/Basket/Basket.API/Model/IBasketRepository.cs @@ -1,6 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; +using System.Collections.Generic; using System.Threading.Tasks; namespace Microsoft.eShopOnContainers.Services.Basket.API.Model @@ -8,7 +6,7 @@ namespace Microsoft.eShopOnContainers.Services.Basket.API.Model public interface IBasketRepository { Task GetBasketAsync(string customerId); - Task> GetUsers(); + Task> GetUsersAsync(); Task UpdateBasketAsync(CustomerBasket basket); Task DeleteBasketAsync(string id); } diff --git a/src/Services/Basket/Basket.API/Model/RedisBasketRepository.cs b/src/Services/Basket/Basket.API/Model/RedisBasketRepository.cs index 59ca0da03..7bfdbaada 100644 --- a/src/Services/Basket/Basket.API/Model/RedisBasketRepository.cs +++ b/src/Services/Basket/Basket.API/Model/RedisBasketRepository.cs @@ -1,12 +1,11 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using StackExchange.Redis; +using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using Newtonsoft.Json; -using Microsoft.Extensions.Logging; +using StackExchange.Redis; +using System.Collections.Generic; +using System.Linq; using System.Net; +using System.Threading.Tasks; namespace Microsoft.eShopOnContainers.Services.Basket.API.Model { @@ -31,7 +30,7 @@ namespace Microsoft.eShopOnContainers.Services.Basket.API.Model return await database.KeyDeleteAsync(id.ToString()); } - public async Task> GetUsers() + public async Task> GetUsersAsync() { var server = await GetServer(); @@ -63,11 +62,12 @@ namespace Microsoft.eShopOnContainers.Services.Basket.API.Model var created = await database.StringSetAsync(basket.BuyerId, JsonConvert.SerializeObject(basket)); if (!created) { - _logger.LogInformation("Problem persisting the item"); + _logger.LogInformation("Problem occur persisting the item."); return null; } - _logger.LogInformation("basket item persisted succesfully"); + _logger.LogInformation("Basket item persisted succesfully."); + return await GetBasketAsync(basket.BuyerId); } @@ -96,7 +96,9 @@ namespace Microsoft.eShopOnContainers.Services.Basket.API.Model { //TODO: Need to make this more robust. Also want to understand why the static connection method cannot accept dns names. var ips = await Dns.GetHostAddressesAsync(_settings.ConnectionString); + _logger.LogInformation($"Connecting to database {_settings.ConnectionString} at IP {ips.First().ToString()}"); + _redis = await ConnectionMultiplexer.ConnectAsync(ips.First().ToString()); } diff --git a/src/Services/Basket/Basket.API/Startup.cs b/src/Services/Basket/Basket.API/Startup.cs index 11a6ebc97..f24818ab6 100644 --- a/src/Services/Basket/Basket.API/Startup.cs +++ b/src/Services/Basket/Basket.API/Startup.cs @@ -1,24 +1,23 @@ -using System.Linq; +using Basket.API.Infrastructure.Filters; +using Basket.API.IntegrationEvents.EventHandling; +using Basket.API.IntegrationEvents.Events; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; +using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Abstractions; +using Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ; +using Microsoft.eShopOnContainers.Services.Basket.API.Auth.Server; +using Microsoft.eShopOnContainers.Services.Basket.API.IntegrationEvents.EventHandling; +using Microsoft.eShopOnContainers.Services.Basket.API.IntegrationEvents.Events; +using Microsoft.eShopOnContainers.Services.Basket.API.Model; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.HealthChecks; using Microsoft.Extensions.Logging; -using Microsoft.eShopOnContainers.Services.Basket.API.Model; -using StackExchange.Redis; using Microsoft.Extensions.Options; +using StackExchange.Redis; +using System.Linq; using System.Net; -using Microsoft.eShopOnContainers.Services.Basket.API.Auth.Server; -using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Abstractions; -using Microsoft.eShopOnContainers.Services.Basket.API.IntegrationEvents.Events; -using Microsoft.eShopOnContainers.Services.Basket.API.IntegrationEvents.EventHandling; -using Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ; -using System; -using Microsoft.Extensions.HealthChecks; using System.Threading.Tasks; -using Basket.API.Infrastructure.Filters; -using Basket.API.IntegrationEvents.Events; -using Basket.API.IntegrationEvents.EventHandling; namespace Microsoft.eShopOnContainers.Services.Basket.API { @@ -59,17 +58,24 @@ namespace Microsoft.eShopOnContainers.Services.Basket.API //and then creating the connection it seems reasonable to move //that cost to startup instead of having the first request pay the //penalty. - services.AddSingleton((sp) => { - var config = sp.GetRequiredService>().Value; - var ips = Dns.GetHostAddressesAsync(config.ConnectionString).Result; + services.AddSingleton(sp => { + var settings = sp.GetRequiredService>().Value; + var ips = Dns.GetHostAddressesAsync(settings.ConnectionString).Result; + return ConnectionMultiplexer.Connect(ips.First().ToString()); }); + services.AddSingleton(sp => + { + var settings = sp.GetRequiredService>().Value; + + return new EventBusRabbitMQ(settings.EventBusConnection); + }); + services.AddSwaggerGen(); - //var sch = new IdentitySecurityScheme(); + services.ConfigureSwaggerGen(options => { - //options.AddSecurityDefinition("IdentityServer", sch); options.OperationFilter(); options.DescribeAllEnumsAsStrings(); options.SingleApiVersion(new Swashbuckle.Swagger.Model.Info() @@ -95,10 +101,7 @@ namespace Microsoft.eShopOnContainers.Services.Basket.API services.AddTransient, ProductPriceChangedIntegrationEventHandler>(); services.AddTransient, OrderStartedIntegrationEventHandler>(); - var serviceProvider = services.BuildServiceProvider(); - var configuration = serviceProvider.GetRequiredService>().Value; - services.AddSingleton(provider => new EventBusRabbitMQ(configuration.EventBusConnection)); - + } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. @@ -119,11 +122,7 @@ namespace Microsoft.eShopOnContainers.Services.Basket.API app.UseSwagger() .UseSwaggerUi(); - var catalogPriceHandler = app.ApplicationServices.GetService>(); - var orderStartedHandler = app.ApplicationServices.GetService>(); - var eventBus = app.ApplicationServices.GetRequiredService(); - eventBus.Subscribe(catalogPriceHandler); - eventBus.Subscribe(orderStartedHandler); + ConfigureEventBus(app); } @@ -136,6 +135,21 @@ namespace Microsoft.eShopOnContainers.Services.Basket.API ScopeName = "basket", RequireHttpsMetadata = false }); - } + } + + protected virtual void ConfigureEventBus(IApplicationBuilder app) + { + var catalogPriceHandler = app.ApplicationServices + .GetService>(); + + var orderStartedHandler = app.ApplicationServices + .GetService>(); + + var eventBus = app.ApplicationServices + .GetRequiredService(); + + eventBus.Subscribe(catalogPriceHandler); + eventBus.Subscribe(orderStartedHandler); + } } } diff --git a/src/Services/Catalog/Catalog.API/CatalogSettings.cs b/src/Services/Catalog/Catalog.API/CatalogSettings.cs new file mode 100644 index 000000000..af6e0ab13 --- /dev/null +++ b/src/Services/Catalog/Catalog.API/CatalogSettings.cs @@ -0,0 +1,9 @@ +namespace Microsoft.eShopOnContainers.Services.Catalog.API +{ + public class CatalogSettings + { + public string ExternalCatalogBaseUrl {get;set;} + + public string EventBusConnection { get; set; } + } +} diff --git a/src/Services/Catalog/Catalog.API/Controllers/CatalogController.cs b/src/Services/Catalog/Catalog.API/Controllers/CatalogController.cs index 83a2de02d..bd5966a9c 100644 --- a/src/Services/Catalog/Catalog.API/Controllers/CatalogController.cs +++ b/src/Services/Catalog/Catalog.API/Controllers/CatalogController.cs @@ -1,9 +1,6 @@ -using Microsoft.AspNetCore.Mvc; +using Catalog.API.IntegrationEvents; +using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Storage; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Abstractions; -using Microsoft.eShopOnContainers.BuildingBlocks.IntegrationEventLogEF.Services; using Microsoft.eShopOnContainers.Services.Catalog.API.Infrastructure; using Microsoft.eShopOnContainers.Services.Catalog.API.IntegrationEvents.Events; using Microsoft.eShopOnContainers.Services.Catalog.API.Model; @@ -11,12 +8,8 @@ using Microsoft.eShopOnContainers.Services.Catalog.API.ViewModel; using Microsoft.Extensions.Options; using System; using System.Collections.Generic; -using System.Data.Common; using System.Linq; using System.Threading.Tasks; -using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Events; -using Microsoft.eShopOnContainers.BuildingBlocks.IntegrationEventLogEF.Utilities; -using Catalog.API.IntegrationEvents; namespace Microsoft.eShopOnContainers.Services.Catalog.API.Controllers { @@ -24,16 +17,16 @@ namespace Microsoft.eShopOnContainers.Services.Catalog.API.Controllers public class CatalogController : ControllerBase { private readonly CatalogContext _catalogContext; - private readonly IOptionsSnapshot _settings; + private readonly CatalogSettings _settings; private readonly ICatalogIntegrationEventService _catalogIntegrationEventService; - public CatalogController(CatalogContext Context, IOptionsSnapshot settings, ICatalogIntegrationEventService catalogIntegrationEventService) + public CatalogController(CatalogContext context, IOptionsSnapshot settings, ICatalogIntegrationEventService catalogIntegrationEventService) { - _catalogContext = Context; - _catalogIntegrationEventService = catalogIntegrationEventService; - _settings = settings; + _catalogContext = context ?? throw new ArgumentNullException(nameof(context)); + _catalogIntegrationEventService = catalogIntegrationEventService ?? throw new ArgumentNullException(nameof(catalogIntegrationEventService)); - ((DbContext)Context).ChangeTracker.QueryTrackingBehavior = QueryTrackingBehavior.NoTracking; + _settings = settings.Value; + ((DbContext)context).ChangeTracker.QueryTrackingBehavior = QueryTrackingBehavior.NoTracking; } // GET api/v1/[controller]/items[?pageSize=3&pageIndex=10] @@ -51,7 +44,7 @@ namespace Microsoft.eShopOnContainers.Services.Catalog.API.Controllers .Take(pageSize) .ToListAsync(); - itemsOnPage = ComposePicUri(itemsOnPage); + itemsOnPage = ChangeUriPlaceholder(itemsOnPage); var model = new PaginatedItemsViewModel( pageIndex, pageSize, totalItems, itemsOnPage); @@ -75,7 +68,7 @@ namespace Microsoft.eShopOnContainers.Services.Catalog.API.Controllers .Take(pageSize) .ToListAsync(); - itemsOnPage = ComposePicUri(itemsOnPage); + itemsOnPage = ChangeUriPlaceholder(itemsOnPage); var model = new PaginatedItemsViewModel( pageIndex, pageSize, totalItems, itemsOnPage); @@ -108,7 +101,7 @@ namespace Microsoft.eShopOnContainers.Services.Catalog.API.Controllers .Take(pageSize) .ToListAsync(); - itemsOnPage = ComposePicUri(itemsOnPage); + itemsOnPage = ChangeUriPlaceholder(itemsOnPage); var model = new PaginatedItemsViewModel( pageIndex, pageSize, totalItems, itemsOnPage); @@ -143,10 +136,17 @@ namespace Microsoft.eShopOnContainers.Services.Catalog.API.Controllers [HttpPost] public async Task UpdateProduct([FromBody]CatalogItem productToUpdate) { - var catalogItem = await _catalogContext.CatalogItems.SingleOrDefaultAsync(i => i.Id == productToUpdate.Id); - if (catalogItem == null) return NotFound(); - var raiseProductPriceChangedEvent = catalogItem.Price != productToUpdate.Price; + var catalogItem = await _catalogContext.CatalogItems + .SingleOrDefaultAsync(i => i.Id == productToUpdate.Id); + + if (catalogItem == null) + { + return NotFound(); + } + var oldPrice = catalogItem.Price; + var raiseProductPriceChangedEvent = oldPrice != productToUpdate.Price; + // Update current product catalogItem = productToUpdate; @@ -205,13 +205,16 @@ namespace Microsoft.eShopOnContainers.Services.Catalog.API.Controllers } _catalogContext.CatalogItems.Remove(product); + await _catalogContext.SaveChangesAsync(); return Ok(); } - private List ComposePicUri(List items) { - var baseUri = _settings.Value.ExternalCatalogBaseUrl; + private List ChangeUriPlaceholder(List items) + { + var baseUri = _settings.ExternalCatalogBaseUrl; + items.ForEach(x => { x.PictureUri = x.PictureUri.Replace("http://externalcatalogbaseurltobereplaced", baseUri); diff --git a/src/Services/Catalog/Catalog.API/Controllers/HomeController.cs b/src/Services/Catalog/Catalog.API/Controllers/HomeController.cs index e6ade8cc5..9401b56f9 100644 --- a/src/Services/Catalog/Catalog.API/Controllers/HomeController.cs +++ b/src/Services/Catalog/Catalog.API/Controllers/HomeController.cs @@ -1,8 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc; // For more information on enabling MVC for empty projects, visit http://go.microsoft.com/fwlink/?LinkID=397860 diff --git a/src/Services/Catalog/Catalog.API/Controllers/PicController.cs b/src/Services/Catalog/Catalog.API/Controllers/PicController.cs index fa6b4ec94..8d8aaf9f2 100644 --- a/src/Services/Catalog/Catalog.API/Controllers/PicController.cs +++ b/src/Services/Catalog/Catalog.API/Controllers/PicController.cs @@ -1,10 +1,6 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; +using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Mvc; using System.IO; -using Microsoft.AspNetCore.Hosting; // For more information on enabling MVC for empty projects, visit http://go.microsoft.com/fwlink/?LinkID=397860 @@ -25,8 +21,10 @@ namespace Microsoft.eShopOnContainers.Services.Catalog.API.Controllers { var webRoot = _env.WebRootPath; var path = Path.Combine(webRoot, id + ".png"); - Byte[] b = System.IO.File.ReadAllBytes(path); - return File(b, "image/png"); + + var buffer = System.IO.File.ReadAllBytes(path); + + return File(buffer, "image/png"); } } } diff --git a/src/Services/Catalog/Catalog.API/Infrastructure/ActionResults/InternalServerErrorObjectResult.cs b/src/Services/Catalog/Catalog.API/Infrastructure/ActionResults/InternalServerErrorObjectResult.cs index 3ac3d0f78..a6138b476 100644 --- a/src/Services/Catalog/Catalog.API/Infrastructure/ActionResults/InternalServerErrorObjectResult.cs +++ b/src/Services/Catalog/Catalog.API/Infrastructure/ActionResults/InternalServerErrorObjectResult.cs @@ -1,9 +1,5 @@ using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; namespace Catalog.API.Infrastructure.ActionResults { diff --git a/src/Services/Catalog/Catalog.API/Infrastructure/Exceptions/CatalogDomainException.cs b/src/Services/Catalog/Catalog.API/Infrastructure/Exceptions/CatalogDomainException.cs index 0b27131cf..45295994e 100644 --- a/src/Services/Catalog/Catalog.API/Infrastructure/Exceptions/CatalogDomainException.cs +++ b/src/Services/Catalog/Catalog.API/Infrastructure/Exceptions/CatalogDomainException.cs @@ -1,7 +1,4 @@ using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; namespace Catalog.API.Infrastructure.Exceptions { diff --git a/src/Services/Catalog/Catalog.API/IntegrationEvents/CatalogIntegrationEventService.cs b/src/Services/Catalog/Catalog.API/IntegrationEvents/CatalogIntegrationEventService.cs index e6e48c54b..1b82251e3 100644 --- a/src/Services/Catalog/Catalog.API/IntegrationEvents/CatalogIntegrationEventService.cs +++ b/src/Services/Catalog/Catalog.API/IntegrationEvents/CatalogIntegrationEventService.cs @@ -30,6 +30,7 @@ namespace Catalog.API.IntegrationEvents public async Task PublishThroughEventBusAsync(IntegrationEvent evt) { _eventBus.Publish(evt); + await _eventLogService.MarkEventAsPublishedAsync(evt); } diff --git a/src/Services/Catalog/Catalog.API/IntegrationEvents/ICatalogIntegrationEventService.cs b/src/Services/Catalog/Catalog.API/IntegrationEvents/ICatalogIntegrationEventService.cs index bb958eeaa..4d87e8e94 100644 --- a/src/Services/Catalog/Catalog.API/IntegrationEvents/ICatalogIntegrationEventService.cs +++ b/src/Services/Catalog/Catalog.API/IntegrationEvents/ICatalogIntegrationEventService.cs @@ -1,7 +1,4 @@ using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Events; -using System; -using System.Collections.Generic; -using System.Linq; using System.Threading.Tasks; namespace Catalog.API.IntegrationEvents diff --git a/src/Services/Catalog/Catalog.API/Model/CatalogBrand.cs b/src/Services/Catalog/Catalog.API/Model/CatalogBrand.cs index eb1fabf7d..84d72899e 100644 --- a/src/Services/Catalog/Catalog.API/Model/CatalogBrand.cs +++ b/src/Services/Catalog/Catalog.API/Model/CatalogBrand.cs @@ -1,11 +1,5 @@ namespace Microsoft.eShopOnContainers.Services.Catalog.API.Model { - using System; - using System.Collections.Generic; - using System.Linq; - using System.Threading.Tasks; - - public class CatalogBrand { public int Id { get; set; } diff --git a/src/Services/Catalog/Catalog.API/Model/CatalogType.cs b/src/Services/Catalog/Catalog.API/Model/CatalogType.cs index ac71914ff..0bc640dee 100644 --- a/src/Services/Catalog/Catalog.API/Model/CatalogType.cs +++ b/src/Services/Catalog/Catalog.API/Model/CatalogType.cs @@ -1,10 +1,5 @@ namespace Microsoft.eShopOnContainers.Services.Catalog.API.Model { - using System; - using System.Collections.Generic; - using System.Linq; - using System.Threading.Tasks; - public class CatalogType { public int Id { get; set; } diff --git a/src/Services/Catalog/Catalog.API/Startup.cs b/src/Services/Catalog/Catalog.API/Startup.cs index f3f0735b2..e3f671652 100644 --- a/src/Services/Catalog/Catalog.API/Startup.cs +++ b/src/Services/Catalog/Catalog.API/Startup.cs @@ -1,6 +1,7 @@ namespace Microsoft.eShopOnContainers.Services.Catalog.API { using global::Catalog.API.Infrastructure.Filters; + using global::Catalog.API.IntegrationEvents; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.EntityFrameworkCore; @@ -16,12 +17,9 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using System; - using System.Data.SqlClient; - using System.IO; using System.Data.Common; + using System.Data.SqlClient; using System.Reflection; - using global::Catalog.API.IntegrationEvents; - using System.Threading.Tasks; public class Startup { @@ -47,7 +45,7 @@ public void ConfigureServices(IServiceCollection services) { // Add framework services. - + services.AddHealthChecks(checks => { checks.AddSqlCheck("CatalogDb", Configuration["ConnectionString"]); @@ -62,18 +60,19 @@ { options.UseSqlServer(Configuration["ConnectionString"], sqlServerOptionsAction: sqlOptions => - { + { sqlOptions.MigrationsAssembly(typeof(Startup).GetTypeInfo().Assembly.GetName().Name); //Configuring Connection Resiliency: https://docs.microsoft.com/en-us/ef/core/miscellaneous/connection-resiliency sqlOptions.EnableRetryOnFailure(maxRetryCount: 5, maxRetryDelay: TimeSpan.FromSeconds(30), errorNumbersToAdd: null); }); + // Changing default behavior when client evaluation occurs to throw. // Default in EF Core would be to log a warning when client evaluation is performed. options.ConfigureWarnings(warnings => warnings.Throw(RelationalEventId.QueryClientEvaluationWarning)); //Check Client vs. Server evaluation: https://docs.microsoft.com/en-us/ef/core/querying/client-eval }); - services.Configure(Configuration); + services.Configure(Configuration); // Add framework services. services.AddSwaggerGen(); @@ -99,11 +98,18 @@ }); services.AddTransient>( - sp => (DbConnection c) => new IntegrationEventLogService(c)); - var serviceProvider = services.BuildServiceProvider(); - var configuration = serviceProvider.GetRequiredService>().Value; + sp => (DbConnection c) => new IntegrationEventLogService(c)); + services.AddTransient(); - services.AddSingleton(new EventBusRabbitMQ(configuration.EventBusConnection)); + + + var serviceProvider = services.BuildServiceProvider(); + + services.AddSingleton(sp => + { + var settings = serviceProvider.GetRequiredService>().Value; + return new EventBusRabbitMQ(settings.EventBusConnection); + }); } public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) @@ -124,25 +130,28 @@ .ApplicationServices.GetService(typeof(CatalogContext)); WaitForSqlAvailability(context, loggerFactory); + //Seed Data CatalogContextSeed.SeedAsync(app, loggerFactory) - .Wait(); + .Wait(); var integrationEventLogContext = new IntegrationEventLogContext( new DbContextOptionsBuilder() .UseSqlServer(Configuration["ConnectionString"], b => b.MigrationsAssembly("Catalog.API")) .Options); + integrationEventLogContext.Database.Migrate(); } private void WaitForSqlAvailability(CatalogContext ctx, ILoggerFactory loggerFactory, int? retry = 0) { - int retryForAvailability = retry.Value; + int retryForAvailability = retry.Value; + try { ctx.Database.OpenConnection(); } - catch(SqlException ex) + catch (SqlException ex) { if (retryForAvailability < 10) { @@ -152,11 +161,10 @@ WaitForSqlAvailability(ctx, loggerFactory, retryForAvailability); } } - finally { - ctx.Database.CloseConnection(); + finally + { + ctx.Database.CloseConnection(); } - - } } } diff --git a/src/Services/Catalog/Catalog.API/settings.cs b/src/Services/Catalog/Catalog.API/settings.cs deleted file mode 100644 index a6e959552..000000000 --- a/src/Services/Catalog/Catalog.API/settings.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; - -namespace Microsoft.eShopOnContainers.Services.Catalog.API -{ - // TODO: Rename CatalogSettings for consistency? - public class Settings - { - public string ExternalCatalogBaseUrl {get;set;} - public string EventBusConnection { get; set; } - } -} diff --git a/src/Services/Ordering/Ordering.API/Application/Commands/IdentifierCommandHandler.cs b/src/Services/Ordering/Ordering.API/Application/Commands/IdentifierCommandHandler.cs index de7dc4fea..529c1aa05 100644 --- a/src/Services/Ordering/Ordering.API/Application/Commands/IdentifierCommandHandler.cs +++ b/src/Services/Ordering/Ordering.API/Application/Commands/IdentifierCommandHandler.cs @@ -45,9 +45,11 @@ namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands return CreateResultForDuplicateRequest(); } else - { - var result = await _mediator.SendAsync(message.Command); + { await _requestManager.CreateRequestForCommandAsync(message.Id); + + var result = await _mediator.SendAsync(message.Command); + return result; } } diff --git a/src/Services/Ordering/Ordering.API/Application/Queries/IOrderQueries.cs b/src/Services/Ordering/Ordering.API/Application/Queries/IOrderQueries.cs index f12a9e418..8d78524ea 100644 --- a/src/Services/Ordering/Ordering.API/Application/Queries/IOrderQueries.cs +++ b/src/Services/Ordering/Ordering.API/Application/Queries/IOrderQueries.cs @@ -4,10 +4,10 @@ public interface IOrderQueries { - Task GetOrder(int id); + Task GetOrderAsync(int id); - Task GetOrders(); + Task GetOrdersAsync(); - Task GetCardTypes(); + Task GetCardTypesAsync(); } } diff --git a/src/Services/Ordering/Ordering.API/Application/Queries/OrderQueries.cs b/src/Services/Ordering/Ordering.API/Application/Queries/OrderQueries.cs index f10f76273..9d909e254 100644 --- a/src/Services/Ordering/Ordering.API/Application/Queries/OrderQueries.cs +++ b/src/Services/Ordering/Ordering.API/Application/Queries/OrderQueries.cs @@ -19,7 +19,7 @@ } - public async Task GetOrder(int id) + public async Task GetOrderAsync(int id) { using (var connection = new SqlConnection(_connectionString)) { @@ -44,7 +44,7 @@ } } - public async Task GetOrders() + public async Task GetOrdersAsync() { using (var connection = new SqlConnection(_connectionString)) { @@ -58,7 +58,7 @@ } } - public async Task GetCardTypes() + public async Task GetCardTypesAsync() { using (var connection = new SqlConnection(_connectionString)) { diff --git a/src/Services/Ordering/Ordering.API/Application/Validations/CreateOrderCommandValidator.cs b/src/Services/Ordering/Ordering.API/Application/Validations/CreateOrderCommandValidator.cs index 449f95df5..e6bbdd4d9 100644 --- a/src/Services/Ordering/Ordering.API/Application/Validations/CreateOrderCommandValidator.cs +++ b/src/Services/Ordering/Ordering.API/Application/Validations/CreateOrderCommandValidator.cs @@ -1,10 +1,8 @@ using FluentValidation; -using MediatR; using Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands; using System; using System.Collections.Generic; using System.Linq; -using System.Threading.Tasks; using static Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands.CreateOrderCommand; namespace Ordering.API.Application.Validations @@ -13,17 +11,17 @@ namespace Ordering.API.Application.Validations { public CreateOrderCommandValidator() { - RuleFor(order => order.City).NotEmpty(); - RuleFor(order => order.Street).NotEmpty(); - RuleFor(order => order.State).NotEmpty(); - RuleFor(order => order.Country).NotEmpty(); - RuleFor(order => order.ZipCode).NotEmpty(); - RuleFor(order => order.CardNumber).NotEmpty().Length(12, 19); - RuleFor(order => order.CardHolderName).NotEmpty(); - RuleFor(order => order.CardExpiration).NotEmpty().Must(BeValidExpirationDate).WithMessage("Please specify a valid card expiration date"); - RuleFor(order => order.CardSecurityNumber).NotEmpty().Length(3); - RuleFor(order => order.CardTypeId).NotEmpty(); - RuleFor(order => order.OrderItems).Must(ContainOrderItems).WithMessage("No order items found"); + RuleFor(command => command.City).NotEmpty(); + RuleFor(command => command.Street).NotEmpty(); + RuleFor(command => command.State).NotEmpty(); + RuleFor(command => command.Country).NotEmpty(); + RuleFor(command => command.ZipCode).NotEmpty(); + RuleFor(command => command.CardNumber).NotEmpty().Length(12, 19); + RuleFor(command => command.CardHolderName).NotEmpty(); + RuleFor(command => command.CardExpiration).NotEmpty().Must(BeValidExpirationDate).WithMessage("Please specify a valid card expiration date"); + RuleFor(command => command.CardSecurityNumber).NotEmpty().Length(3); + RuleFor(command => command.CardTypeId).NotEmpty(); + RuleFor(command => command.OrderItems).Must(ContainOrderItems).WithMessage("No order items found"); } private bool BeValidExpirationDate(DateTime dateTime) diff --git a/src/Services/Ordering/Ordering.API/Application/Validations/IdentifierCommandValidator.cs b/src/Services/Ordering/Ordering.API/Application/Validations/IdentifierCommandValidator.cs index 44b374ee6..e1482287f 100644 --- a/src/Services/Ordering/Ordering.API/Application/Validations/IdentifierCommandValidator.cs +++ b/src/Services/Ordering/Ordering.API/Application/Validations/IdentifierCommandValidator.cs @@ -1,9 +1,5 @@ using FluentValidation; using Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; namespace Ordering.API.Application.Validations { @@ -11,7 +7,7 @@ namespace Ordering.API.Application.Validations { public IdentifierCommandValidator() { - RuleFor(customer => customer.Id).NotEmpty(); + RuleFor(command => command.Id).NotEmpty(); } } } diff --git a/src/Services/Ordering/Ordering.API/Controllers/OrdersController.cs b/src/Services/Ordering/Ordering.API/Controllers/OrdersController.cs index 4121e3214..d9a3752ed 100644 --- a/src/Services/Ordering/Ordering.API/Controllers/OrdersController.cs +++ b/src/Services/Ordering/Ordering.API/Controllers/OrdersController.cs @@ -57,7 +57,9 @@ namespace Microsoft.eShopOnContainers.Services.Ordering.API.Controllers { try { - var order = await _orderQueries.GetOrder(orderId); + var order = await _orderQueries + .GetOrderAsync(orderId); + return Ok(order); } catch (KeyNotFoundException) @@ -70,7 +72,8 @@ namespace Microsoft.eShopOnContainers.Services.Ordering.API.Controllers [HttpGet] public async Task GetOrders() { - var orders = await _orderQueries.GetOrders(); + var orders = await _orderQueries + .GetOrdersAsync(); return Ok(orders); } @@ -79,7 +82,8 @@ namespace Microsoft.eShopOnContainers.Services.Ordering.API.Controllers [HttpGet] public async Task GetCardTypes() { - var cardTypes = await _orderQueries.GetCardTypes(); + var cardTypes = await _orderQueries + .GetCardTypesAsync(); return Ok(cardTypes); } diff --git a/src/Services/Ordering/Ordering.API/Startup.cs b/src/Services/Ordering/Ordering.API/Startup.cs index 6b120eb78..ae5c4c3ff 100644 --- a/src/Services/Ordering/Ordering.API/Startup.cs +++ b/src/Services/Ordering/Ordering.API/Startup.cs @@ -65,14 +65,14 @@ services.AddEntityFrameworkSqlServer() .AddDbContext(options => { - options.UseSqlServer(Configuration["ConnectionString"], - sqlServerOptionsAction: sqlOptions => - { - sqlOptions.MigrationsAssembly(typeof(Startup).GetTypeInfo().Assembly.GetName().Name); - sqlOptions.EnableRetryOnFailure(maxRetryCount: 5, maxRetryDelay: TimeSpan.FromSeconds(30), errorNumbersToAdd: null); - }); - }, - ServiceLifetime.Scoped //Showing explicitly that the DbContext is shared across the HTTP request scope (graph of objects started in the HTTP request) + options.UseSqlServer(Configuration["ConnectionString"], + sqlServerOptionsAction: sqlOptions => + { + sqlOptions.MigrationsAssembly(typeof(Startup).GetTypeInfo().Assembly.GetName().Name); + sqlOptions.EnableRetryOnFailure(maxRetryCount: 5, maxRetryDelay: TimeSpan.FromSeconds(30), errorNumbersToAdd: null); + }); + }, + ServiceLifetime.Scoped //Showing explicitly that the DbContext is shared across the HTTP request scope (graph of objects started in the HTTP request) ); services.AddSwaggerGen(); diff --git a/src/Services/Ordering/Ordering.Domain/AggregatesModel/BuyerAggregate/Buyer.cs b/src/Services/Ordering/Ordering.Domain/AggregatesModel/BuyerAggregate/Buyer.cs index 84040d8a1..c806cebeb 100644 --- a/src/Services/Ordering/Ordering.Domain/AggregatesModel/BuyerAggregate/Buyer.cs +++ b/src/Services/Ordering/Ordering.Domain/AggregatesModel/BuyerAggregate/Buyer.cs @@ -16,6 +16,7 @@ namespace Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.B public IEnumerable PaymentMethods => _paymentMethods.AsReadOnly(); protected Buyer() { + _paymentMethods = new List(); } @@ -34,6 +35,7 @@ namespace Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.B if (existingPayment != null) { AddDomainEvent(new BuyerAndPaymentMethodVerifiedDomainEvent(this, existingPayment, orderId)); + return existingPayment; } else @@ -41,7 +43,9 @@ namespace Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.B var payment = new PaymentMethod(cardTypeId, alias, cardNumber, securityNumber, cardHolderName, expiration); _paymentMethods.Add(payment); + AddDomainEvent(new BuyerAndPaymentMethodVerifiedDomainEvent(this, payment, orderId)); + return payment; } } diff --git a/src/Services/Ordering/Ordering.Domain/AggregatesModel/OrderAggregate/IOrderRepository.cs b/src/Services/Ordering/Ordering.Domain/AggregatesModel/OrderAggregate/IOrderRepository.cs index a35188d8f..d7346ee4f 100644 --- a/src/Services/Ordering/Ordering.Domain/AggregatesModel/OrderAggregate/IOrderRepository.cs +++ b/src/Services/Ordering/Ordering.Domain/AggregatesModel/OrderAggregate/IOrderRepository.cs @@ -9,9 +9,9 @@ namespace Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.O public interface IOrderRepository : IRepository { Order Add(Order order); + + void Update(Order order); Task GetAsync(int orderId); - - void Update(Order order); } } diff --git a/src/Services/Ordering/Ordering.Domain/SeedWork/Enumeration.cs b/src/Services/Ordering/Ordering.Domain/SeedWork/Enumeration.cs index fd74ab1df..ec8dfd968 100644 --- a/src/Services/Ordering/Ordering.Domain/SeedWork/Enumeration.cs +++ b/src/Services/Ordering/Ordering.Domain/SeedWork/Enumeration.cs @@ -71,17 +71,17 @@ namespace Microsoft.eShopOnContainers.Services.Ordering.Domain.SeedWork public static T FromValue(int value) where T : Enumeration, new() { - var matchingItem = parse(value, "value", item => item.Id == value); + var matchingItem = Parse(value, "value", item => item.Id == value); return matchingItem; } public static T FromDisplayName(string displayName) where T : Enumeration, new() { - var matchingItem = parse(displayName, "display name", item => item.Name == displayName); + var matchingItem = Parse(displayName, "display name", item => item.Name == displayName); return matchingItem; } - private static T parse(K value, string description, Func predicate) where T : Enumeration, new() + private static T Parse(K value, string description, Func predicate) where T : Enumeration, new() { var matchingItem = GetAll().FirstOrDefault(predicate); diff --git a/src/Services/Ordering/Ordering.Infrastructure/ClientRequest.cs b/src/Services/Ordering/Ordering.Infrastructure/Idempotency/ClientRequest.cs similarity index 80% rename from src/Services/Ordering/Ordering.Infrastructure/ClientRequest.cs rename to src/Services/Ordering/Ordering.Infrastructure/Idempotency/ClientRequest.cs index 47a401aab..7ca49fa41 100644 --- a/src/Services/Ordering/Ordering.Infrastructure/ClientRequest.cs +++ b/src/Services/Ordering/Ordering.Infrastructure/Idempotency/ClientRequest.cs @@ -1,8 +1,6 @@ using System; -using System.Collections.Generic; -using System.Text; -namespace Microsoft.eShopOnContainers.Services.Ordering.Infrastructure +namespace Microsoft.eShopOnContainers.Services.Ordering.Infrastructure.Idempotency { public class ClientRequest { diff --git a/src/Services/Ordering/Ordering.Infrastructure/Idempotency/IRequestManager.cs b/src/Services/Ordering/Ordering.Infrastructure/Idempotency/IRequestManager.cs index a8a02f8ca..d38c23e09 100644 --- a/src/Services/Ordering/Ordering.Infrastructure/Idempotency/IRequestManager.cs +++ b/src/Services/Ordering/Ordering.Infrastructure/Idempotency/IRequestManager.cs @@ -1,6 +1,4 @@ using System; -using System.Collections.Generic; -using System.Text; using System.Threading.Tasks; namespace Microsoft.eShopOnContainers.Services.Ordering.Infrastructure.Idempotency @@ -8,6 +6,7 @@ namespace Microsoft.eShopOnContainers.Services.Ordering.Infrastructure.Idempoten public interface IRequestManager { Task ExistAsync(Guid id); + Task CreateRequestForCommandAsync(Guid id); } } diff --git a/src/Services/Ordering/Ordering.Infrastructure/Idempotency/RequestManager.cs b/src/Services/Ordering/Ordering.Infrastructure/Idempotency/RequestManager.cs index 0ef005161..6b6a96579 100644 --- a/src/Services/Ordering/Ordering.Infrastructure/Idempotency/RequestManager.cs +++ b/src/Services/Ordering/Ordering.Infrastructure/Idempotency/RequestManager.cs @@ -1,8 +1,5 @@ -using Microsoft.eShopOnContainers.Services.Ordering.Infrastructure; -using Ordering.Domain.Exceptions; +using Ordering.Domain.Exceptions; using System; -using System.Collections.Generic; -using System.Text; using System.Threading.Tasks; namespace Microsoft.eShopOnContainers.Services.Ordering.Infrastructure.Idempotency @@ -10,22 +7,25 @@ namespace Microsoft.eShopOnContainers.Services.Ordering.Infrastructure.Idempoten public class RequestManager : IRequestManager { private readonly OrderingContext _context; - public RequestManager(OrderingContext ctx) + + public RequestManager(OrderingContext context) { - _context = ctx; + _context = context ?? throw new ArgumentNullException(nameof(context)); } public async Task ExistAsync(Guid id) { - var request = await _context.FindAsync(id); + var request = await _context. + FindAsync(id); + return request != null; } public async Task CreateRequestForCommandAsync(Guid id) - { - + { var exists = await ExistAsync(id); + var request = exists ? throw new OrderingDomainException($"Request with {id} already exists") : new ClientRequest() @@ -36,8 +36,8 @@ namespace Microsoft.eShopOnContainers.Services.Ordering.Infrastructure.Idempoten }; _context.Add(request); + await _context.SaveChangesAsync(); } - } } diff --git a/src/Services/Ordering/Ordering.Infrastructure/MediatorExtension.cs b/src/Services/Ordering/Ordering.Infrastructure/MediatorExtension.cs index 99e94e086..9135188cf 100644 --- a/src/Services/Ordering/Ordering.Infrastructure/MediatorExtension.cs +++ b/src/Services/Ordering/Ordering.Infrastructure/MediatorExtension.cs @@ -6,13 +6,20 @@ using System.Threading.Tasks; namespace Ordering.Infrastructure { - public static class MediatorExtension + static class MediatorExtension { public static async Task DispatchDomainEventsAsync(this IMediator mediator, OrderingContext ctx) { - var domainEntities = ctx.ChangeTracker.Entries().Where(x => x.Entity.DomainEvents != null && x.Entity.DomainEvents.Any()); - var domainEvents = domainEntities.SelectMany(x => x.Entity.DomainEvents).ToList(); - domainEntities.ToList().ForEach(entity => entity.Entity.DomainEvents.Clear()); + var domainEntities = ctx.ChangeTracker + .Entries() + .Where(x => x.Entity.DomainEvents != null && x.Entity.DomainEvents.Any()); + + var domainEvents = domainEntities + .SelectMany(x => x.Entity.DomainEvents) + .ToList(); + + domainEntities.ToList() + .ForEach(entity => entity.Entity.DomainEvents.Clear()); var tasks = domainEvents .Select(async (domainEvent) => { diff --git a/src/Services/Ordering/Ordering.Infrastructure/OrderingContext.cs b/src/Services/Ordering/Ordering.Infrastructure/OrderingContext.cs index 70bb8a51a..5b95ee23c 100644 --- a/src/Services/Ordering/Ordering.Infrastructure/OrderingContext.cs +++ b/src/Services/Ordering/Ordering.Infrastructure/OrderingContext.cs @@ -5,6 +5,7 @@ using Microsoft.EntityFrameworkCore.Metadata.Builders; using Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.BuyerAggregate; using Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.OrderAggregate; using Microsoft.eShopOnContainers.Services.Ordering.Domain.Seedwork; +using Microsoft.eShopOnContainers.Services.Ordering.Infrastructure.Idempotency; using Ordering.Infrastructure; using System; using System.Threading; @@ -34,7 +35,7 @@ namespace Microsoft.eShopOnContainers.Services.Ordering.Infrastructure public OrderingContext(DbContextOptions options, IMediator mediator) : base(options) { - _mediator = mediator; + _mediator = mediator ?? throw new ArgumentNullException(nameof(mediator)); } protected override void OnModelCreating(ModelBuilder modelBuilder) diff --git a/test/Services/UnitTest/Ordering/Application/OrdersWebApiTest.cs b/test/Services/UnitTest/Ordering/Application/OrdersWebApiTest.cs index e81840bb3..8c7659862 100644 --- a/test/Services/UnitTest/Ordering/Application/OrdersWebApiTest.cs +++ b/test/Services/UnitTest/Ordering/Application/OrdersWebApiTest.cs @@ -60,7 +60,7 @@ namespace UnitTest.Ordering.Application { //Arrange var fakeDynamicResult = new Object(); - _orderQueriesMock.Setup(x => x.GetOrders()) + _orderQueriesMock.Setup(x => x.GetOrdersAsync()) .Returns(Task.FromResult(fakeDynamicResult)); //Act @@ -77,7 +77,7 @@ namespace UnitTest.Ordering.Application //Arrange var fakeOrderId = 123; var fakeDynamicResult = new Object(); - _orderQueriesMock.Setup(x => x.GetOrder(It.IsAny())) + _orderQueriesMock.Setup(x => x.GetOrderAsync(It.IsAny())) .Returns(Task.FromResult(fakeDynamicResult)); //Act @@ -93,7 +93,7 @@ namespace UnitTest.Ordering.Application { //Arrange var fakeDynamicResult = new Object(); - _orderQueriesMock.Setup(x => x.GetCardTypes()) + _orderQueriesMock.Setup(x => x.GetCardTypesAsync()) .Returns(Task.FromResult(fakeDynamicResult)); //Act From c99e5e8e3bae3a8b5a9b41b8b88ed41712cd07ff Mon Sep 17 00:00:00 2001 From: Unai Zorrilla Castro Date: Mon, 17 Apr 2017 15:00:53 +0200 Subject: [PATCH 05/15] Pending review files --- .../EventBus/EventBus/Abstractions/IEventBus.cs | 3 --- .../EventBus/Abstractions/IIntegrationEventHandler.cs | 3 --- .../EventBus/EventBus/Events/IntegrationEvent.cs | 2 -- .../EventBus/EventBusRabbitMQ/EventBusRabbitMQ.cs | 5 +++-- 4 files changed, 3 insertions(+), 10 deletions(-) diff --git a/src/BuildingBlocks/EventBus/EventBus/Abstractions/IEventBus.cs b/src/BuildingBlocks/EventBus/EventBus/Abstractions/IEventBus.cs index af6ee1aa7..63f9f1b99 100644 --- a/src/BuildingBlocks/EventBus/EventBus/Abstractions/IEventBus.cs +++ b/src/BuildingBlocks/EventBus/EventBus/Abstractions/IEventBus.cs @@ -1,7 +1,4 @@ using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Events; -using System; -using System.Collections.Generic; -using System.Text; namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Abstractions { diff --git a/src/BuildingBlocks/EventBus/EventBus/Abstractions/IIntegrationEventHandler.cs b/src/BuildingBlocks/EventBus/EventBus/Abstractions/IIntegrationEventHandler.cs index d755bc066..828aed26a 100644 --- a/src/BuildingBlocks/EventBus/EventBus/Abstractions/IIntegrationEventHandler.cs +++ b/src/BuildingBlocks/EventBus/EventBus/Abstractions/IIntegrationEventHandler.cs @@ -1,7 +1,4 @@ using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Events; -using System; -using System.Collections.Generic; -using System.Text; using System.Threading.Tasks; namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Abstractions diff --git a/src/BuildingBlocks/EventBus/EventBus/Events/IntegrationEvent.cs b/src/BuildingBlocks/EventBus/EventBus/Events/IntegrationEvent.cs index c9e60a0cf..e01a7aaa8 100644 --- a/src/BuildingBlocks/EventBus/EventBus/Events/IntegrationEvent.cs +++ b/src/BuildingBlocks/EventBus/EventBus/Events/IntegrationEvent.cs @@ -1,6 +1,4 @@ using System; -using System.Collections.Generic; -using System.Text; namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Events { diff --git a/src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.cs b/src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.cs index 3388875ab..903601378 100644 --- a/src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.cs +++ b/src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.cs @@ -5,7 +5,6 @@ using Newtonsoft.Json; using RabbitMQ.Client; using RabbitMQ.Client.Events; using System; -using System.Collections; using System.Collections.Generic; using System.Linq; using System.Reflection; @@ -35,7 +34,9 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ public void Publish(IntegrationEvent @event) { - var eventName = @event.GetType().Name; + var eventName = @event.GetType() + .Name; + var factory = new ConnectionFactory() { HostName = _connectionString }; using (var connection = factory.CreateConnection()) using (var channel = connection.CreateModel()) From 9ed2f1ce7bd4101ee6939a93cfcadb004eb402a7 Mon Sep 17 00:00:00 2001 From: Eduard Tomas Date: Tue, 18 Apr 2017 17:58:52 +0200 Subject: [PATCH 06/15] Catalog.API methods following more rest conventions: Create/Update routed by POST/PUT & Location header returned A new GET endpoint for returning single item by id created to honour Location header of previous methods. --- .../Controllers/CatalogController.cs | 72 ++++++++++++------- 1 file changed, 45 insertions(+), 27 deletions(-) diff --git a/src/Services/Catalog/Catalog.API/Controllers/CatalogController.cs b/src/Services/Catalog/Catalog.API/Controllers/CatalogController.cs index bd5966a9c..374d8ec7c 100644 --- a/src/Services/Catalog/Catalog.API/Controllers/CatalogController.cs +++ b/src/Services/Catalog/Catalog.API/Controllers/CatalogController.cs @@ -39,7 +39,7 @@ namespace Microsoft.eShopOnContainers.Services.Catalog.API.Controllers .LongCountAsync(); var itemsOnPage = await _catalogContext.CatalogItems - .OrderBy(c=>c.Name) + .OrderBy(c => c.Name) .Skip(pageSize * pageIndex) .Take(pageSize) .ToListAsync(); @@ -47,11 +47,29 @@ namespace Microsoft.eShopOnContainers.Services.Catalog.API.Controllers itemsOnPage = ChangeUriPlaceholder(itemsOnPage); var model = new PaginatedItemsViewModel( - pageIndex, pageSize, totalItems, itemsOnPage); + pageIndex, pageSize, totalItems, itemsOnPage); return Ok(model); } + [HttpGet] + [Route("items/{id:int}")] + public async Task GetItemById(int id) + { + if (id <= 0) + { + return BadRequest(); + } + + var item = await _catalogContext.CatalogItems.SingleOrDefaultAsync(ci => ci.Id == id); + if (item != null) + { + return Ok(item); + } + + return NotFound(); + } + // GET api/v1/[controller]/items/withname/samplename[?pageSize=3&pageIndex=10] [HttpGet] [Route("[action]/withname/{name:minlength(1)}")] @@ -131,9 +149,9 @@ namespace Microsoft.eShopOnContainers.Services.Catalog.API.Controllers return Ok(items); } - //POST api/v1/[controller]/update - [Route("update")] - [HttpPost] + //PUT api/v1/[controller]/items + [Route("items")] + [HttpPut] public async Task UpdateProduct([FromBody]CatalogItem productToUpdate) { var catalogItem = await _catalogContext.CatalogItems @@ -141,13 +159,13 @@ namespace Microsoft.eShopOnContainers.Services.Catalog.API.Controllers if (catalogItem == null) { - return NotFound(); + return NotFound(new { Message = $"Item with id {productToUpdate.Id} not found." }); } var oldPrice = catalogItem.Price; var raiseProductPriceChangedEvent = oldPrice != productToUpdate.Price; - - + + // Update current product catalogItem = productToUpdate; _catalogContext.CatalogItems.Update(catalogItem); @@ -156,40 +174,40 @@ namespace Microsoft.eShopOnContainers.Services.Catalog.API.Controllers { //Create Integration Event to be published through the Event Bus var priceChangedEvent = new ProductPriceChangedIntegrationEvent(catalogItem.Id, productToUpdate.Price, oldPrice); - + // Achieving atomicity between original Catalog database operation and the IntegrationEventLog thanks to a local transaction await _catalogIntegrationEventService.SaveEventAndCatalogContextChangesAsync(priceChangedEvent); - + // Publish through the Event Bus and mark the saved event as published await _catalogIntegrationEventService.PublishThroughEventBusAsync(priceChangedEvent); } else // Save updated product { await _catalogContext.SaveChangesAsync(); - } + } - return Ok(); + return CreatedAtAction(nameof(GetItemById), new { id = productToUpdate.Id }, null); } - //POST api/v1/[controller]/create - [Route("create")] + //POST api/v1/[controller]/items + [Route("items")] [HttpPost] public async Task CreateProduct([FromBody]CatalogItem product) { - _catalogContext.CatalogItems.Add( - new CatalogItem - { - CatalogBrandId = product.CatalogBrandId, - CatalogTypeId = product.CatalogTypeId, - Description = product.Description, - Name = product.Name, - PictureUri = product.PictureUri, - Price = product.Price - }); + var item = new CatalogItem + { + CatalogBrandId = product.CatalogBrandId, + CatalogTypeId = product.CatalogTypeId, + Description = product.Description, + Name = product.Name, + PictureUri = product.PictureUri, + Price = product.Price + }; + _catalogContext.CatalogItems.Add(item); await _catalogContext.SaveChangesAsync(); - return Ok(); + return CreatedAtAction(nameof(GetItemById), new { id = item.Id }, null); } //DELETE api/v1/[controller]/id @@ -202,13 +220,13 @@ namespace Microsoft.eShopOnContainers.Services.Catalog.API.Controllers if (product == null) { return NotFound(); - } + } _catalogContext.CatalogItems.Remove(product); await _catalogContext.SaveChangesAsync(); - return Ok(); + return NoContent(); } private List ChangeUriPlaceholder(List items) From 39813424f99ec8c0bae463d2e8638966995615ec Mon Sep 17 00:00:00 2001 From: Eduard Tomas Date: Wed, 19 Apr 2017 15:45:32 +0200 Subject: [PATCH 07/15] Solves error building SPA on linux host due to case error --- src/Web/WebSPA/Client/modules/app.module.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Web/WebSPA/Client/modules/app.module.ts b/src/Web/WebSPA/Client/modules/app.module.ts index 997eacbfb..f05d466d8 100644 --- a/src/Web/WebSPA/Client/modules/app.module.ts +++ b/src/Web/WebSPA/Client/modules/app.module.ts @@ -2,7 +2,7 @@ import { NgModule, NgModuleFactoryLoader } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; // import { FormsModule } from '@angular/forms'; import { HttpModule } from '@angular/http'; -import { RouterModule } from '@angular/Router'; +import { RouterModule } from '@angular/router'; import { routing } from './app.routes'; import { AppService } from './app.service'; From 09a53f01376de824ff4eb391c87a0cd88f1b9bd8 Mon Sep 17 00:00:00 2001 From: Unai Zorrilla Castro Date: Thu, 20 Apr 2017 10:53:17 +0200 Subject: [PATCH 08/15] Added IRabbitMQPersisterConnection and more resilient work on rabbitmq event bus --- .../DefaultRabbitMQPersisterConnection.cs | 130 +++++++++++++ .../EventBusRabbitMQ/EventBusRabbitMQ.cs | 175 +++++++++++------- .../EventBusRabbitMQ/EventBusRabbitMQ.csproj | 2 + .../IRabbitMQPersisterConnection.cs | 16 ++ src/Services/Basket/Basket.API/Startup.cs | 20 +- src/Services/Catalog/Catalog.API/Startup.cs | 18 +- src/Services/Ordering/Ordering.API/Startup.cs | 17 +- 7 files changed, 295 insertions(+), 83 deletions(-) create mode 100644 src/BuildingBlocks/EventBus/EventBusRabbitMQ/DefaultRabbitMQPersisterConnection.cs create mode 100644 src/BuildingBlocks/EventBus/EventBusRabbitMQ/IRabbitMQPersisterConnection.cs diff --git a/src/BuildingBlocks/EventBus/EventBusRabbitMQ/DefaultRabbitMQPersisterConnection.cs b/src/BuildingBlocks/EventBus/EventBusRabbitMQ/DefaultRabbitMQPersisterConnection.cs new file mode 100644 index 000000000..894afb4e4 --- /dev/null +++ b/src/BuildingBlocks/EventBus/EventBusRabbitMQ/DefaultRabbitMQPersisterConnection.cs @@ -0,0 +1,130 @@ +using Microsoft.Extensions.Logging; +using Polly; +using Polly.Retry; +using RabbitMQ.Client; +using RabbitMQ.Client.Events; +using RabbitMQ.Client.Exceptions; +using System; +using System.IO; +using System.Net.Sockets; + +namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ +{ + public class DefaultRabbitMQPersisterConnection + : IRabbitMQPersisterConnection + { + private readonly IConnectionFactory _connectionFactory; + private readonly ILogger _logger; + + IConnection _connection; + bool _disposed; + + object sync_root = new object(); + + public DefaultRabbitMQPersisterConnection(IConnectionFactory connectionFactory,ILogger logger) + { + _connectionFactory = connectionFactory ?? throw new ArgumentNullException(nameof(connectionFactory)); + _logger = logger ?? throw new ArgumentNullException(nameof(logger)); + } + + public bool IsConnected + { + get + { + return _connection != null && _connection.IsOpen && !_disposed; + } + } + + public IModel CreateModel() + { + if (!IsConnected) + { + throw new InvalidOperationException("No RabbitMQ connections are available to perform this action"); + } + + return _connection.CreateModel(); + } + + public void Dispose() + { + if (_disposed) return; + + _disposed = true; + + try + { + _connection.Dispose(); + } + catch (IOException ex) + { + _logger.LogCritical(ex.ToString()); + } + } + + public bool TryConnect() + { + _logger.LogInformation("RabbitMQ Client is trying to connect"); + + lock (sync_root) + { + var policy = RetryPolicy.Handle() + .Or() + .WaitAndRetry(5, retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt)), (ex, time) => + { + _logger.LogWarning(ex.ToString()); + } + ); + + policy.Execute(() => + { + _connection = _connectionFactory + .CreateConnection(); + }); + + if (IsConnected) + { + _connection.ConnectionShutdown += OnConnectionShutdown; + _connection.CallbackException += OnCallbackException; + _connection.ConnectionBlocked += OnConnectionBlocked; + + _logger.LogInformation($"RabbitMQ persister connection acquire a connection {_connection.Endpoint.HostName} and is subscribed to failure events"); + + return true; + } + else + { + _logger.LogCritical("FATAL ERROR: RabbitMQ connections can't be created and opened"); + + return false; + } + } + } + + private void OnConnectionBlocked(object sender, ConnectionBlockedEventArgs e) + { + if (_disposed) return; + + _logger.LogWarning("A RabbitMQ connection is shutdown. Trying to re-connect..."); + + TryConnect(); + } + + void OnCallbackException(object sender, CallbackExceptionEventArgs e) + { + if (_disposed) return; + + _logger.LogWarning("A RabbitMQ connection throw exception. Trying to re-connect..."); + + TryConnect(); + } + + void OnConnectionShutdown(object sender, ShutdownEventArgs reason) + { + if (_disposed) return; + + _logger.LogWarning("A RabbitMQ connection is on shutdown. Trying to re-connect..."); + + TryConnect(); + } + } +} diff --git a/src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.cs b/src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.cs index 903601378..cbdb233f8 100644 --- a/src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.cs +++ b/src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.cs @@ -1,12 +1,16 @@ - -using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Abstractions; +using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Abstractions; using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Events; +using Microsoft.Extensions.Logging; using Newtonsoft.Json; +using Polly; +using Polly.Retry; using RabbitMQ.Client; using RabbitMQ.Client.Events; +using RabbitMQ.Client.Exceptions; using System; using System.Collections.Generic; using System.Linq; +using System.Net.Sockets; using System.Reflection; using System.Text; using System.Threading.Tasks; @@ -15,70 +19,97 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ { public class EventBusRabbitMQ : IEventBus, IDisposable { - private readonly string _brokerName = "eshop_event_bus"; - private readonly string _connectionString; - private readonly Dictionary> _handlers; - private readonly List _eventTypes; + const string BROKER_NAME = "eshop_event_bus"; - private IModel _model; - private IConnection _connection; - private string _queueName; - + private readonly IRabbitMQPersisterConnection _persisterConnection; + private readonly ILogger _logger; - public EventBusRabbitMQ(string connectionString) + private readonly Dictionary> _handlers + = new Dictionary>(); + + private readonly List _eventTypes + = new List(); + + private IModel _consumerChannel; + + public EventBusRabbitMQ(IRabbitMQPersisterConnection persisterConnection, ILogger logger) { - _connectionString = connectionString; - _handlers = new Dictionary>(); - _eventTypes = new List(); + _persisterConnection = persisterConnection ?? throw new ArgumentNullException(nameof(persisterConnection)); + _logger = logger ?? throw new ArgumentNullException(nameof(logger)); + + _consumerChannel = CreateConsumerChannel(); } + public void Publish(IntegrationEvent @event) { - var eventName = @event.GetType() - .Name; + if (!_persisterConnection.IsConnected) + { + _persisterConnection.TryConnect(); + } - var factory = new ConnectionFactory() { HostName = _connectionString }; - using (var connection = factory.CreateConnection()) - using (var channel = connection.CreateModel()) + var policy = RetryPolicy.Handle() + .Or() + .WaitAndRetry(5, retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt)), (ex, time) => + { + _logger.LogWarning(ex.ToString()); + }); + + using (var channel = _persisterConnection.CreateModel()) { - channel.ExchangeDeclare(exchange: _brokerName, + var eventName = @event.GetType() + .Name; + + channel.ExchangeDeclare(exchange: BROKER_NAME, type: "direct"); - string message = JsonConvert.SerializeObject(@event); + var message = JsonConvert.SerializeObject(@event); var body = Encoding.UTF8.GetBytes(message); - channel.BasicPublish(exchange: _brokerName, + policy.Execute(() => + { + channel.BasicPublish(exchange: BROKER_NAME, routingKey: eventName, basicProperties: null, - body: body); + body: body); + }); } - } public void Subscribe(IIntegrationEventHandler handler) where T : IntegrationEvent { var eventName = typeof(T).Name; - if (_handlers.ContainsKey(eventName)) + + if (_handlers.ContainsKey(eventName)) { _handlers[eventName].Add(handler); } else { - var channel = GetChannel(); - channel.QueueBind(queue: _queueName, - exchange: _brokerName, - routingKey: eventName); - - _handlers.Add(eventName, new List()); - _handlers[eventName].Add(handler); - _eventTypes.Add(typeof(T)); + if (!_persisterConnection.IsConnected) + { + _persisterConnection.TryConnect(); + } + + using (var channel = _persisterConnection.CreateModel()) + { + channel.QueueBind(queue: channel.QueueDeclare().QueueName, + exchange: BROKER_NAME, + routingKey: eventName); + + _handlers.Add(eventName, new List()); + _handlers[eventName].Add(handler); + _eventTypes.Add(typeof(T)); + } + } - + } public void Unsubscribe(IIntegrationEventHandler handler) where T : IntegrationEvent { var eventName = typeof(T).Name; + if (_handlers.ContainsKey(eventName) && _handlers[eventName].Contains(handler)) { _handlers[eventName].Remove(handler); @@ -86,56 +117,46 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ if (_handlers[eventName].Count == 0) { _handlers.Remove(eventName); - var eventType = _eventTypes.Single(e => e.Name == eventName); - _eventTypes.Remove(eventType); - _model.QueueUnbind(queue: _queueName, - exchange: _brokerName, - routingKey: eventName); - if (_handlers.Keys.Count == 0) + var eventType = _eventTypes.SingleOrDefault(e => e.Name == eventName); + + if (eventType != null) { - _queueName = string.Empty; - _model.Dispose(); - _connection.Dispose(); + _eventTypes.Remove(eventType); + + if (!_persisterConnection.IsConnected) + { + _persisterConnection.TryConnect(); + } + + using (var channel = _persisterConnection.CreateModel()) + { + channel.QueueUnbind(queue: channel.QueueDeclare().QueueName, + exchange: BROKER_NAME, + routingKey: eventName); + } } - } } } public void Dispose() { + _consumerChannel.Dispose(); _handlers.Clear(); - _model?.Dispose(); - _connection?.Dispose(); } - private IModel GetChannel() + private IModel CreateConsumerChannel() { - if (_model != null) - { - return _model; - } - else + if (!_persisterConnection.IsConnected) { - (_model, _connection) = CreateConnection(); - return _model; + _persisterConnection.TryConnect(); } - } + var channel = _persisterConnection.CreateModel(); - private (IModel model, IConnection connection) CreateConnection() - { - var factory = new ConnectionFactory() { HostName = _connectionString }; - var con = factory.CreateConnection(); - var channel = con.CreateModel(); - - channel.ExchangeDeclare(exchange: _brokerName, - type: "direct"); - if (string.IsNullOrEmpty(_queueName)) - { - _queueName = channel.QueueDeclare().QueueName; - } + channel.ExchangeDeclare(exchange: BROKER_NAME, + type: "direct"); var consumer = new EventingBasicConsumer(channel); consumer.Received += async (model, ea) => @@ -145,11 +166,24 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ await ProcessEvent(eventName, message); }; - channel.BasicConsume(queue: _queueName, + + channel.BasicConsume(queue: channel.QueueDeclare().QueueName, noAck: true, consumer: consumer); - return (channel, con); + channel.ModelShutdown += (sender, ea) => + { + _consumerChannel.Dispose(); + _consumerChannel = CreateConsumerChannel(); + }; + + channel.CallbackException += (sender, ea) => + { + _consumerChannel.Dispose(); + _consumerChannel = CreateConsumerChannel(); + }; + + return channel; } private async Task ProcessEvent(string eventName, string message) @@ -157,7 +191,7 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ if (_handlers.ContainsKey(eventName)) { Type eventType = _eventTypes.Single(t => t.Name == eventName); - var integrationEvent = JsonConvert.DeserializeObject(message, eventType); + var integrationEvent = JsonConvert.DeserializeObject(message, eventType); var concreteType = typeof(IIntegrationEventHandler<>).MakeGenericType(eventType); var handlers = _handlers[eventName]; @@ -167,6 +201,5 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ } } } - } } diff --git a/src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj b/src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj index cf36a2222..023a5d5ec 100644 --- a/src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj +++ b/src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj @@ -7,7 +7,9 @@ + + diff --git a/src/BuildingBlocks/EventBus/EventBusRabbitMQ/IRabbitMQPersisterConnection.cs b/src/BuildingBlocks/EventBus/EventBusRabbitMQ/IRabbitMQPersisterConnection.cs new file mode 100644 index 000000000..b9debe743 --- /dev/null +++ b/src/BuildingBlocks/EventBus/EventBusRabbitMQ/IRabbitMQPersisterConnection.cs @@ -0,0 +1,16 @@ +using RabbitMQ.Client; +using System; + +namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ +{ + + public interface IRabbitMQPersisterConnection + : IDisposable + { + bool IsConnected { get; } + + bool TryConnect(); + + IModel CreateModel(); + } +} diff --git a/src/Services/Basket/Basket.API/Startup.cs b/src/Services/Basket/Basket.API/Startup.cs index f24818ab6..60fc46de2 100644 --- a/src/Services/Basket/Basket.API/Startup.cs +++ b/src/Services/Basket/Basket.API/Startup.cs @@ -14,6 +14,7 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.HealthChecks; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; +using RabbitMQ.Client; using StackExchange.Redis; using System.Linq; using System.Net; @@ -58,22 +59,31 @@ namespace Microsoft.eShopOnContainers.Services.Basket.API //and then creating the connection it seems reasonable to move //that cost to startup instead of having the first request pay the //penalty. - services.AddSingleton(sp => { + services.AddSingleton(sp => + { var settings = sp.GetRequiredService>().Value; var ips = Dns.GetHostAddressesAsync(settings.ConnectionString).Result; return ConnectionMultiplexer.Connect(ips.First().ToString()); }); - services.AddSingleton(sp => + + services.AddSingleton(sp => { var settings = sp.GetRequiredService>().Value; + var logger = sp.GetRequiredService>(); + var factory = new ConnectionFactory() + { + HostName = settings.EventBusConnection + }; - return new EventBusRabbitMQ(settings.EventBusConnection); + return new DefaultRabbitMQPersisterConnection(factory, logger); }); + services.AddSingleton(); + services.AddSwaggerGen(); - + services.ConfigureSwaggerGen(options => { options.OperationFilter(); @@ -101,7 +111,7 @@ namespace Microsoft.eShopOnContainers.Services.Basket.API services.AddTransient, ProductPriceChangedIntegrationEventHandler>(); services.AddTransient, OrderStartedIntegrationEventHandler>(); - + } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. diff --git a/src/Services/Catalog/Catalog.API/Startup.cs b/src/Services/Catalog/Catalog.API/Startup.cs index e3f671652..c13ac2d1b 100644 --- a/src/Services/Catalog/Catalog.API/Startup.cs +++ b/src/Services/Catalog/Catalog.API/Startup.cs @@ -16,6 +16,7 @@ using Microsoft.Extensions.HealthChecks; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; + using RabbitMQ.Client; using System; using System.Data.Common; using System.Data.SqlClient; @@ -102,14 +103,19 @@ services.AddTransient(); - - var serviceProvider = services.BuildServiceProvider(); - - services.AddSingleton(sp => + services.AddSingleton(sp => { - var settings = serviceProvider.GetRequiredService>().Value; - return new EventBusRabbitMQ(settings.EventBusConnection); + var settings = sp.GetRequiredService>().Value; + var logger = sp.GetRequiredService>(); + var factory = new ConnectionFactory() + { + HostName = settings.EventBusConnection + }; + + return new DefaultRabbitMQPersisterConnection(factory, logger); }); + + services.AddSingleton(); } public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) diff --git a/src/Services/Ordering/Ordering.API/Startup.cs b/src/Services/Ordering/Ordering.API/Startup.cs index ae5c4c3ff..0d6e222b6 100644 --- a/src/Services/Ordering/Ordering.API/Startup.cs +++ b/src/Services/Ordering/Ordering.API/Startup.cs @@ -22,6 +22,7 @@ using Microsoft.Extensions.HealthChecks; using Microsoft.Extensions.Logging; using Ordering.Infrastructure; + using RabbitMQ.Client; using System; using System.Data.Common; using System.Reflection; @@ -105,7 +106,21 @@ sp => (DbConnection c) => new IntegrationEventLogService(c)); var serviceProvider = services.BuildServiceProvider(); services.AddTransient(); - services.AddSingleton(new EventBusRabbitMQ(Configuration["EventBusConnection"])); + + services.AddSingleton(sp => + { + var logger = sp.GetRequiredService>(); + + var factory = new ConnectionFactory() + { + HostName = Configuration["EventBusConnection"] + }; + + return new DefaultRabbitMQPersisterConnection(factory, logger); + }); + + services.AddSingleton(); + services.AddOptions(); //configure autofac From ebff02fb1f7ca2e5e4fee00cbb13243c0c4ce324 Mon Sep 17 00:00:00 2001 From: Geert Van Laethem Date: Thu, 20 Apr 2017 13:27:52 +0200 Subject: [PATCH 09/15] Fixed two typos to the filter --- .../Infrastructure/Filters/HttpGlobalExceptionFilter.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Services/Ordering/Ordering.API/Infrastructure/Filters/HttpGlobalExceptionFilter.cs b/src/Services/Ordering/Ordering.API/Infrastructure/Filters/HttpGlobalExceptionFilter.cs index 7d19815b9..69faf8e42 100644 --- a/src/Services/Ordering/Ordering.API/Infrastructure/Filters/HttpGlobalExceptionFilter.cs +++ b/src/Services/Ordering/Ordering.API/Infrastructure/Filters/HttpGlobalExceptionFilter.cs @@ -41,12 +41,12 @@ { var json = new JsonErrorResponse { - Messages = new[] { "An error ocurr.Try it again." } + Messages = new[] { "An error occur.Try it again." } }; if (env.IsDevelopment()) { - json.DeveloperMeesage = context.Exception; + json.DeveloperMessage = context.Exception; } // Result asigned to a result object but in destiny the response is empty. This is a known bug of .net core 1.1 @@ -61,7 +61,7 @@ { public string[] Messages { get; set; } - public object DeveloperMeesage { get; set; } + public object DeveloperMessage { get; set; } } } } From 70f50a0fce82ed65a1de2902e46890f9c021ead3 Mon Sep 17 00:00:00 2001 From: Unai Zorrilla Castro Date: Thu, 20 Apr 2017 16:44:07 +0200 Subject: [PATCH 10/15] Fix bug with queue names --- .../EventBusRabbitMQ/EventBusRabbitMQ.cs | 28 ++++++++++++------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.cs b/src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.cs index cbdb233f8..e7a493c10 100644 --- a/src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.cs +++ b/src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.cs @@ -31,6 +31,7 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ = new List(); private IModel _consumerChannel; + private string _queueName; public EventBusRabbitMQ(IRabbitMQPersisterConnection persisterConnection, ILogger logger) { @@ -93,7 +94,7 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ using (var channel = _persisterConnection.CreateModel()) { - channel.QueueBind(queue: channel.QueueDeclare().QueueName, + channel.QueueBind(queue: _queueName, exchange: BROKER_NAME, routingKey: eventName); @@ -131,9 +132,16 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ using (var channel = _persisterConnection.CreateModel()) { - channel.QueueUnbind(queue: channel.QueueDeclare().QueueName, + channel.QueueUnbind(queue: _queueName, exchange: BROKER_NAME, routingKey: eventName); + + if (_handlers.Keys.Count == 0) + { + _queueName = string.Empty; + + _consumerChannel.Close(); + } } } } @@ -142,7 +150,11 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ public void Dispose() { - _consumerChannel.Dispose(); + if (_consumerChannel != null) + { + _consumerChannel.Dispose(); + } + _handlers.Clear(); } @@ -158,6 +170,8 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ channel.ExchangeDeclare(exchange: BROKER_NAME, type: "direct"); + _queueName = channel.QueueDeclare().QueueName; + var consumer = new EventingBasicConsumer(channel); consumer.Received += async (model, ea) => { @@ -167,16 +181,10 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ await ProcessEvent(eventName, message); }; - channel.BasicConsume(queue: channel.QueueDeclare().QueueName, + channel.BasicConsume(queue: _queueName, noAck: true, consumer: consumer); - channel.ModelShutdown += (sender, ea) => - { - _consumerChannel.Dispose(); - _consumerChannel = CreateConsumerChannel(); - }; - channel.CallbackException += (sender, ea) => { _consumerChannel.Dispose(); From 730bf390920f2b90b6982132b87839c32446e470 Mon Sep 17 00:00:00 2001 From: Cesar De la Torre Date: Thu, 20 Apr 2017 17:26:45 -0700 Subject: [PATCH 11/15] Update README.md --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index ad3de086b..fcca52789 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,13 @@ -# eShopOnContainers - Microservices Architecture and Containers based Reference Application (**ALPHA state** - VS 2017 and CLI environments compatible) +# eShopOnContainers - Microservices Architecture and Containers based Reference Application (**BETA state** - Visual Studio 2017 and CLI environments compatible) Sample .NET Core reference application, powered by Microsoft, based on a simplified microservices architecture and Docker containers.

> ### DISCLAIMER > **IMPORTANT:** The current state of this sample application is **ALPHA**, consider it version a 0.1 foundational version, therefore, many areas could be improved and change significantly while refactoring current code and implementing new features. **Feedback with improvements and pull requests from the community will be highly appreciated and accepted.** > -> This reference application proposes a simplified microservice oriented architecture implementation to introduce technologies like .NET Core with Docker containers through a comprehensive application. However, this reference application it is not trying to solve all the problems in a large and mission-critical distributed system, it is just a bootstrap for developers to easily get started in the world of Docker containers and microservices with .NET Core. +> This reference application proposes a simplified microservice oriented architecture implementation to introduce technologies like .NET Core with Docker containers through a comprehensive application. The chosen domain is an eShop/eCommerce but simply because it is a well-know domain by most people/developers. +However, this sample application should not be considered as an "eCommerce reference model", at all. The implemented business domain might not be ideal from an eCommerce business point of view. It is neither trying to solve all the problems in a large, scalable and mission-critical distributed system. It is just a bootstrap for developers to easily get started in the world of Docker containers and microservices with .NET Core. >

For example, the next step (still not covered in eShopOnContainers) after understanding Docker containers and microservices development with .NET Core, is to select a microservice cluster/orchestrator like Docker Swarm, Kubernetes or DC/OS (in Azure Container Service) or Azure Service Fabric which in most of the cases will require additional partial changes to your application's configuration (although the present architecture should work on most orchestrators with small changes). -> Or moving your databases to HA cloud services, or implementing your EventBus with Azure Service Bus or any other production ready Service Bus in the market. +> Additional steps would be to move your databases to HA cloud services, or to implement your EventBus with Azure Service Bus or any other production ready Service Bus in the market. >

In the future we might fork this project and make multiple versions targeting specific microservice cluster/orchestrators plus using additional cloud infrastructure.

> > Read the planned Roadmap and Milestones for future releases of eShopOnContainers within the Wiki for further info about possible new implementations and provide feedback at the ISSUES section if you'd like to see any specific scenario implemented or improved. Also, feel free to discuss on any current issue. From 6d60e321c5f0f9122ee51a0bf4d78955493d3602 Mon Sep 17 00:00:00 2001 From: Cesar De la Torre Date: Thu, 20 Apr 2017 17:28:08 -0700 Subject: [PATCH 12/15] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fcca52789..a1ae7aff3 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Sample .NET Core reference application, powered by Microsoft, based on a simplified microservices architecture and Docker containers.

> ### DISCLAIMER -> **IMPORTANT:** The current state of this sample application is **ALPHA**, consider it version a 0.1 foundational version, therefore, many areas could be improved and change significantly while refactoring current code and implementing new features. **Feedback with improvements and pull requests from the community will be highly appreciated and accepted.** +> **IMPORTANT:** The current state of this sample application is **BETA**, consider it version a 0.1 foundational version, therefore, many areas could be improved and change significantly while refactoring current code and implementing new features. **Feedback with improvements and pull requests from the community will be highly appreciated and accepted.** > > This reference application proposes a simplified microservice oriented architecture implementation to introduce technologies like .NET Core with Docker containers through a comprehensive application. The chosen domain is an eShop/eCommerce but simply because it is a well-know domain by most people/developers. However, this sample application should not be considered as an "eCommerce reference model", at all. The implemented business domain might not be ideal from an eCommerce business point of view. It is neither trying to solve all the problems in a large, scalable and mission-critical distributed system. It is just a bootstrap for developers to easily get started in the world of Docker containers and microservices with .NET Core. From ca7bbebd591489c07ecf42a28743b020bf17e3f6 Mon Sep 17 00:00:00 2001 From: Cesar De la Torre Date: Wed, 26 Apr 2017 09:05:21 -0700 Subject: [PATCH 13/15] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a1ae7aff3..b3499975e 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ Additional miroservice styles with other frameworks and No-SQL databases will be >

However, in a real production environment it is recommended to have your databases (SQL Server and Redis, in this case) in HA (High Available) services like Azure SQL Database, Redis as a service or any other clustering system. If you want to change to a production configuration, you'll just need to change the connection strings once you have set up the servers in a HA cloud or on-premises. ## Related documentation and guidance -While developing this reference application, we are creating a reference Guide/eBook named "Architecting and Developing Containerized and Microservice based .NET Applications" which explains in detail how to develop this kind of architectural style (microservices, Docker containers, Domain-Driven Design for certain microservices) plus other simpler architectural styles, like monolithic apps that can also live as Docker containers. +While developing this reference application, we've been creating a reference Guide/eBook focusing on architecting and developing containerized and microservice based .NET Applications (download link available below) which explains in detail how to develop this kind of architectural style (microservices, Docker containers, Domain-Driven Design for certain microservices) plus other simpler architectural styles, like monolithic apps that can also live as Docker containers.

There are also additional eBooks focusing on Containers/Docker lifecycle (DevOps, CI/CD, etc.) with Microsoft Tools, already published plus an additional eBook focusing on Enterprise Apps Patterns with Xamarin.Forms. You can download them and start reviewing these Guides/eBooks here: From 767a104edd75cf8de63c9e9d3f850a6c330c2ec9 Mon Sep 17 00:00:00 2001 From: Cesar De la Torre Date: Wed, 26 Apr 2017 09:12:01 -0700 Subject: [PATCH 14/15] New eBook Cover updated --- ...rch_dev_microservices_containers_cover.png | Bin 31800 -> 38712 bytes ...v_microservices_containers_cover_LARGE.png | Bin 0 -> 247854 bytes ...dev_microservices_containers_cover_OLD.png | Bin 0 -> 31800 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 img/ebook_arch_dev_microservices_containers_cover_LARGE.png create mode 100644 img/ebook_arch_dev_microservices_containers_cover_OLD.png diff --git a/img/ebook_arch_dev_microservices_containers_cover.png b/img/ebook_arch_dev_microservices_containers_cover.png index 1837354b55a23573100819460ab85f1e32a47d03..caf16c6651e1d895f61f4aa8c7f85b4eeb835e7d 100644 GIT binary patch literal 38712 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 VaqyTCwAwceNM2p8LB=Bd{{R{P+&};T diff --git a/img/ebook_arch_dev_microservices_containers_cover_LARGE.png b/img/ebook_arch_dev_microservices_containers_cover_LARGE.png new file mode 100644 index 0000000000000000000000000000000000000000..f18ec386f2e86dfae0947651f6496f4e9cb3a125 GIT binary patch literal 247854 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 $#1l%nu;*{y)Sd|p?eKgx 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 gk4bAX0Ixmp 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 literal 0 HcmV?d00001 diff --git a/img/ebook_arch_dev_microservices_containers_cover_OLD.png b/img/ebook_arch_dev_microservices_containers_cover_OLD.png new file mode 100644 index 0000000000000000000000000000000000000000..1837354b55a23573100819460ab85f1e32a47d03 GIT binary patch literal 31800 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 VaqyTCwAwceNM2p8LB=Bd{{R{P+&};T literal 0 HcmV?d00001 From 3273d723cb3bf242918c0b781026c9add8f90c10 Mon Sep 17 00:00:00 2001 From: Cesar De la Torre Date: Wed, 26 Apr 2017 09:45:00 -0700 Subject: [PATCH 15/15] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b3499975e..07c9b3691 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ You can download them and start reviewing these Guides/eBooks here: | | | | | **Download** (Early DRAFT, still work in progress) | **Download** (First Edition from late 2016) | **Download** (Early DRAFT, still work in progress) | -Send feedback to [cesardl@microsoft.com](cesardl@microsoft.com) +Send feedback to [dotnet-architecture-ebooks-feedback@service.microsoft.com](dotnet-architecture-ebooks-feedback@service.microsoft.com)

However, we encourage to download and review the "Architecting & Developing eBook" because the architectural styles and architectural patterns and technologies explained in the guidance are using this reference application when explaining many pattern implementations, so you'll understand much better the context, design and decisions taken in the current architecture and internal designs.