Browse Source

Add ConfirmOrderStockIntegrationEventHandler and OrderStockConfirmedIntegrationEvent/OrderStockNotConfirmedIntegrationEvent

pull/809/head
Christian Arenas 7 years ago
parent
commit
fbfe287da5
5 changed files with 110 additions and 0 deletions
  1. +33
    -0
      src/Services/Catalog/Catalog.API/IntegrationEvents/EventHandling/ConfirmOrderStockIntegrationEventHandler.cs
  2. +30
    -0
      src/Services/Catalog/Catalog.API/IntegrationEvents/Events/ConfirmOrderStockIntegrationEvent.cs
  3. +11
    -0
      src/Services/Catalog/Catalog.API/IntegrationEvents/Events/OrderStockConfirmedIntegrationEvent.cs
  4. +34
    -0
      src/Services/Catalog/Catalog.API/IntegrationEvents/Events/OrderStockNotConfirmedIntegrationEvent.cs
  5. +2
    -0
      src/Services/Catalog/Catalog.API/Model/CatalogItem.cs

+ 33
- 0
src/Services/Catalog/Catalog.API/IntegrationEvents/EventHandling/ConfirmOrderStockIntegrationEventHandler.cs View File

@ -0,0 +1,33 @@
using Catalog.API.IntegrationEvents;
namespace Microsoft.eShopOnContainers.Services.Catalog.API.IntegrationEvents.EventHandling
{
using BuildingBlocks.EventBus.Abstractions;
using System.Threading.Tasks;
using BuildingBlocks.EventBus.Events;
using Infrastructure;
using Events;
public class ConfirmOrderStockIntegrationEventHandler : IIntegrationEventHandler<ConfirmOrderStockIntegrationEvent>
{
private readonly CatalogContext _catalogContext;
private readonly ICatalogIntegrationEventService _catalogIntegrationEventService;
public ConfirmOrderStockIntegrationEventHandler(CatalogContext catalogContext,
ICatalogIntegrationEventService catalogIntegrationEventService)
{
_catalogContext = catalogContext;
_catalogIntegrationEventService = catalogIntegrationEventService;
}
public async Task Handle(ConfirmOrderStockIntegrationEvent @event)
{
IntegrationEvent integrationEvent = new OrderStockConfirmedIntegrationEvent(@event.OrderId);
//TODO: Check the stock products units
await _catalogIntegrationEventService.PublishThroughEventBusAsync(integrationEvent);
}
}
}

+ 30
- 0
src/Services/Catalog/Catalog.API/IntegrationEvents/Events/ConfirmOrderStockIntegrationEvent.cs View File

@ -0,0 +1,30 @@
namespace Microsoft.eShopOnContainers.Services.Catalog.API.IntegrationEvents.Events
{
using BuildingBlocks.EventBus.Events;
using System.Collections.Generic;
public class ConfirmOrderStockIntegrationEvent : IntegrationEvent
{
public int OrderId { get; }
public IEnumerable<OrderStockItem> OrderStockItem { get; }
public ConfirmOrderStockIntegrationEvent(int orderId,
IEnumerable<OrderStockItem> orderStockItem)
{
OrderId = orderId;
OrderStockItem = orderStockItem;
}
}
public class OrderStockItem
{
public int ProductId { get; }
public int Units { get; }
public OrderStockItem(int productId, int units)
{
ProductId = productId;
Units = units;
}
}
}

+ 11
- 0
src/Services/Catalog/Catalog.API/IntegrationEvents/Events/OrderStockConfirmedIntegrationEvent.cs View File

@ -0,0 +1,11 @@
namespace Microsoft.eShopOnContainers.Services.Catalog.API.IntegrationEvents.Events
{
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Events;
public class OrderStockConfirmedIntegrationEvent : IntegrationEvent
{
public int OrderId { get; }
public OrderStockConfirmedIntegrationEvent(int orderId) => OrderId = orderId;
}
}

+ 34
- 0
src/Services/Catalog/Catalog.API/IntegrationEvents/Events/OrderStockNotConfirmedIntegrationEvent.cs View File

@ -0,0 +1,34 @@
using System.Collections.Generic;
namespace Microsoft.eShopOnContainers.Services.Catalog.API.IntegrationEvents.Events
{
using BuildingBlocks.EventBus.Events;
public class OrderStockNotConfirmedIntegrationEvent : IntegrationEvent
{
public int OrderId { get; }
public IEnumerable<ConfirmedOrderStockItem> OrderStockItem { get; }
public OrderStockNotConfirmedIntegrationEvent(int orderId,
IEnumerable<ConfirmedOrderStockItem> orderStockItem)
{
OrderId = orderId;
OrderStockItem = orderStockItem;
}
public class ConfirmedOrderStockItem
{
public int ProductId { get; }
public int Units { get; }
public bool Confirmed { get; }
public ConfirmedOrderStockItem(int productId, int units, bool confirmed)
{
ProductId = productId;
Units = units;
Confirmed = confirmed;
}
}
}
}

+ 2
- 0
src/Services/Catalog/Catalog.API/Model/CatalogItem.cs View File

@ -14,6 +14,8 @@ namespace Microsoft.eShopOnContainers.Services.Catalog.API.Model
public string PictureUri { get; set; }
public int Stock { get; set; }
public int CatalogTypeId { get; set; }
public CatalogType CatalogType { get; set; }


Loading…
Cancel
Save