Moved all usings to globalusing file
This commit is contained in:
parent
818995d8b8
commit
666fba815f
@ -1,11 +1,4 @@
|
|||||||
using MediatR;
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Behaviors;
|
||||||
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Extensions;
|
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
using System.Threading;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace Ordering.API.Application.Behaviors
|
|
||||||
{
|
|
||||||
public class LoggingBehavior<TRequest, TResponse> : IPipelineBehavior<TRequest, TResponse>
|
public class LoggingBehavior<TRequest, TResponse> : IPipelineBehavior<TRequest, TResponse>
|
||||||
{
|
{
|
||||||
private readonly ILogger<LoggingBehavior<TRequest, TResponse>> _logger;
|
private readonly ILogger<LoggingBehavior<TRequest, TResponse>> _logger;
|
||||||
@ -20,4 +13,4 @@ namespace Ordering.API.Application.Behaviors
|
|||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -1,16 +1,7 @@
|
|||||||
using MediatR;
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Behaviors;
|
||||||
using Microsoft.EntityFrameworkCore;
|
|
||||||
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Extensions;
|
using Microsoft.Extensions.Logging;
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.Infrastructure;
|
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
using Ordering.API.Application.IntegrationEvents;
|
|
||||||
using Serilog.Context;
|
|
||||||
using System;
|
|
||||||
using System.Threading;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace Ordering.API.Application.Behaviors
|
|
||||||
{
|
|
||||||
public class TransactionBehaviour<TRequest, TResponse> : IPipelineBehavior<TRequest, TResponse>
|
public class TransactionBehaviour<TRequest, TResponse> : IPipelineBehavior<TRequest, TResponse>
|
||||||
{
|
{
|
||||||
private readonly ILogger<TransactionBehaviour<TRequest, TResponse>> _logger;
|
private readonly ILogger<TransactionBehaviour<TRequest, TResponse>> _logger;
|
||||||
@ -71,4 +62,3 @@ namespace Ordering.API.Application.Behaviors
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -1,14 +1,5 @@
|
|||||||
using FluentValidation;
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Behaviors;
|
||||||
using MediatR;
|
|
||||||
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Extensions;
|
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
using Ordering.Domain.Exceptions;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Threading;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace Ordering.API.Application.Behaviors
|
|
||||||
{
|
|
||||||
public class ValidatorBehavior<TRequest, TResponse> : IPipelineBehavior<TRequest, TResponse>
|
public class ValidatorBehavior<TRequest, TResponse> : IPipelineBehavior<TRequest, TResponse>
|
||||||
{
|
{
|
||||||
private readonly ILogger<ValidatorBehavior<TRequest, TResponse>> _logger;
|
private readonly ILogger<ValidatorBehavior<TRequest, TResponse>> _logger;
|
||||||
@ -43,4 +34,3 @@ namespace Ordering.API.Application.Behaviors
|
|||||||
return await next();
|
return await next();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
@ -1,8 +1,5 @@
|
|||||||
using MediatR;
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands;
|
||||||
using System.Runtime.Serialization;
|
|
||||||
|
|
||||||
namespace Ordering.API.Application.Commands
|
|
||||||
{
|
|
||||||
public class CancelOrderCommand : IRequest<bool>
|
public class CancelOrderCommand : IRequest<bool>
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -17,4 +14,3 @@ namespace Ordering.API.Application.Commands
|
|||||||
OrderNumber = orderNumber;
|
OrderNumber = orderNumber;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -1,13 +1,5 @@
|
|||||||
using MediatR;
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands;
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands;
|
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.OrderAggregate;
|
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.Infrastructure.Idempotency;
|
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
using System.Threading;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace Ordering.API.Application.Commands
|
|
||||||
{
|
|
||||||
// Regular CommandHandler
|
// Regular CommandHandler
|
||||||
public class CancelOrderCommandHandler : IRequestHandler<CancelOrderCommand, bool>
|
public class CancelOrderCommandHandler : IRequestHandler<CancelOrderCommand, bool>
|
||||||
{
|
{
|
||||||
@ -54,4 +46,3 @@ namespace Ordering.API.Application.Commands
|
|||||||
return true; // Ignore duplicate requests for processing order.
|
return true; // Ignore duplicate requests for processing order.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -1,12 +1,5 @@
|
|||||||
using MediatR;
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands;
|
||||||
using Ordering.API.Application.Models;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Runtime.Serialization;
|
|
||||||
|
|
||||||
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands
|
|
||||||
{
|
|
||||||
// DDD and CQRS patterns comment: Note that it is recommended to implement immutable Commands
|
// DDD and CQRS patterns comment: Note that it is recommended to implement immutable Commands
|
||||||
// In this case, its immutability is achieved by having all the setters as private
|
// In this case, its immutability is achieved by having all the setters as private
|
||||||
// plus only being able to update the data just once, when creating the object through its constructor.
|
// plus only being able to update the data just once, when creating the object through its constructor.
|
||||||
@ -16,6 +9,8 @@ namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands
|
|||||||
// http://blog.gauffin.org/2012/06/griffin-container-introducing-command-support/
|
// http://blog.gauffin.org/2012/06/griffin-container-introducing-command-support/
|
||||||
// https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/how-to-implement-a-lightweight-class-with-auto-implemented-properties
|
// https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/how-to-implement-a-lightweight-class-with-auto-implemented-properties
|
||||||
|
|
||||||
|
using Microsoft.eShopOnContainers.Services.Ordering.API.Application.Models;
|
||||||
|
|
||||||
[DataContract]
|
[DataContract]
|
||||||
public class CreateOrderCommand
|
public class CreateOrderCommand
|
||||||
: IRequest<bool>
|
: IRequest<bool>
|
||||||
@ -103,4 +98,4 @@ namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands
|
|||||||
public string PictureUrl { get; init; }
|
public string PictureUrl { get; init; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -1,15 +1,6 @@
|
|||||||
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands;
|
||||||
{
|
|
||||||
using Domain.AggregatesModel.OrderAggregate;
|
using Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.OrderAggregate;
|
||||||
using global::Ordering.API.Application.IntegrationEvents;
|
|
||||||
using global::Ordering.API.Application.IntegrationEvents.Events;
|
|
||||||
using MediatR;
|
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure.Services;
|
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.Infrastructure.Idempotency;
|
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
using System;
|
|
||||||
using System.Threading;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
// Regular CommandHandler
|
// Regular CommandHandler
|
||||||
public class CreateOrderCommandHandler
|
public class CreateOrderCommandHandler
|
||||||
@ -79,4 +70,3 @@
|
|||||||
return true; // Ignore duplicate requests for creating order.
|
return true; // Ignore duplicate requests for creating order.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
using MediatR;
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands;
|
||||||
using Ordering.API.Application.Models;
|
using Microsoft.eShopOnContainers.Services.Ordering.API.Application.Models;
|
||||||
using System.Collections.Generic;
|
|
||||||
|
|
||||||
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands
|
|
||||||
{
|
|
||||||
public class CreateOrderDraftCommand : IRequest<OrderDraftDTO>
|
public class CreateOrderDraftCommand : IRequest<OrderDraftDTO>
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -17,5 +14,3 @@ namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands
|
|||||||
Items = items;
|
Items = items;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
|
@ -1,15 +1,7 @@
|
|||||||
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands;
|
||||||
{
|
|
||||||
using Domain.AggregatesModel.OrderAggregate;
|
|
||||||
using global::Ordering.API.Application.Models;
|
|
||||||
using MediatR;
|
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure.Services;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Threading;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using static Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands.CreateOrderCommand;
|
using static Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands.CreateOrderCommand;
|
||||||
|
using Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.OrderAggregate;
|
||||||
|
|
||||||
// Regular CommandHandler
|
// Regular CommandHandler
|
||||||
public class CreateOrderDraftCommandHandler
|
public class CreateOrderDraftCommandHandler
|
||||||
@ -64,8 +56,3 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
@ -1,8 +1,5 @@
|
|||||||
using MediatR;
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands;
|
||||||
using System;
|
|
||||||
|
|
||||||
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands
|
|
||||||
{
|
|
||||||
public class IdentifiedCommand<T, R> : IRequest<R>
|
public class IdentifiedCommand<T, R> : IRequest<R>
|
||||||
where T : IRequest<R>
|
where T : IRequest<R>
|
||||||
{
|
{
|
||||||
@ -14,4 +11,3 @@ namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands
|
|||||||
Id = id;
|
Id = id;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -1,13 +1,5 @@
|
|||||||
using MediatR;
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands;
|
||||||
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Extensions;
|
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.Infrastructure.Idempotency;
|
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
using Ordering.API.Application.Commands;
|
|
||||||
using System.Threading;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands
|
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Provides a base implementation for handling duplicate request and ensuring idempotent updates, in the cases where
|
/// Provides a base implementation for handling duplicate request and ensuring idempotent updates, in the cases where
|
||||||
/// a requestid sent by client is used to detect duplicate requests.
|
/// a requestid sent by client is used to detect duplicate requests.
|
||||||
@ -113,4 +105,3 @@ namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
@ -1,8 +1,5 @@
|
|||||||
using MediatR;
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands;
|
||||||
using System.Runtime.Serialization;
|
|
||||||
|
|
||||||
namespace Ordering.API.Application.Commands
|
|
||||||
{
|
|
||||||
public class SetAwaitingValidationOrderStatusCommand : IRequest<bool>
|
public class SetAwaitingValidationOrderStatusCommand : IRequest<bool>
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -14,4 +11,3 @@ namespace Ordering.API.Application.Commands
|
|||||||
OrderNumber = orderNumber;
|
OrderNumber = orderNumber;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
@ -1,13 +1,5 @@
|
|||||||
using MediatR;
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands;
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands;
|
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.OrderAggregate;
|
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.Infrastructure.Idempotency;
|
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
using System.Threading;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace Ordering.API.Application.Commands
|
|
||||||
{
|
|
||||||
// Regular CommandHandler
|
// Regular CommandHandler
|
||||||
public class SetAwaitingValidationOrderStatusCommandHandler : IRequestHandler<SetAwaitingValidationOrderStatusCommand, bool>
|
public class SetAwaitingValidationOrderStatusCommandHandler : IRequestHandler<SetAwaitingValidationOrderStatusCommand, bool>
|
||||||
{
|
{
|
||||||
@ -54,4 +46,3 @@ namespace Ordering.API.Application.Commands
|
|||||||
return true; // Ignore duplicate requests for processing order.
|
return true; // Ignore duplicate requests for processing order.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -1,8 +1,5 @@
|
|||||||
using MediatR;
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands;
|
||||||
using System.Runtime.Serialization;
|
|
||||||
|
|
||||||
namespace Ordering.API.Application.Commands
|
|
||||||
{
|
|
||||||
public class SetPaidOrderStatusCommand : IRequest<bool>
|
public class SetPaidOrderStatusCommand : IRequest<bool>
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -14,4 +11,3 @@ namespace Ordering.API.Application.Commands
|
|||||||
OrderNumber = orderNumber;
|
OrderNumber = orderNumber;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
@ -1,13 +1,5 @@
|
|||||||
using MediatR;
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands;
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands;
|
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.OrderAggregate;
|
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.Infrastructure.Idempotency;
|
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
using System.Threading;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace Ordering.API.Application.Commands
|
|
||||||
{
|
|
||||||
// Regular CommandHandler
|
// Regular CommandHandler
|
||||||
public class SetPaidOrderStatusCommandHandler : IRequestHandler<SetPaidOrderStatusCommand, bool>
|
public class SetPaidOrderStatusCommandHandler : IRequestHandler<SetPaidOrderStatusCommand, bool>
|
||||||
{
|
{
|
||||||
@ -57,4 +49,3 @@ namespace Ordering.API.Application.Commands
|
|||||||
return true; // Ignore duplicate requests for processing order.
|
return true; // Ignore duplicate requests for processing order.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -1,8 +1,5 @@
|
|||||||
using MediatR;
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands;
|
||||||
using System.Runtime.Serialization;
|
|
||||||
|
|
||||||
namespace Ordering.API.Application.Commands
|
|
||||||
{
|
|
||||||
public class SetStockConfirmedOrderStatusCommand : IRequest<bool>
|
public class SetStockConfirmedOrderStatusCommand : IRequest<bool>
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -14,4 +11,3 @@ namespace Ordering.API.Application.Commands
|
|||||||
OrderNumber = orderNumber;
|
OrderNumber = orderNumber;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
@ -1,13 +1,5 @@
|
|||||||
using MediatR;
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands;
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands;
|
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.OrderAggregate;
|
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.Infrastructure.Idempotency;
|
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
using System.Threading;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace Ordering.API.Application.Commands
|
|
||||||
{
|
|
||||||
// Regular CommandHandler
|
// Regular CommandHandler
|
||||||
public class SetStockConfirmedOrderStatusCommandHandler : IRequestHandler<SetStockConfirmedOrderStatusCommand, bool>
|
public class SetStockConfirmedOrderStatusCommandHandler : IRequestHandler<SetStockConfirmedOrderStatusCommand, bool>
|
||||||
{
|
{
|
||||||
@ -57,4 +49,3 @@ namespace Ordering.API.Application.Commands
|
|||||||
return true; // Ignore duplicate requests for processing order.
|
return true; // Ignore duplicate requests for processing order.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -1,9 +1,5 @@
|
|||||||
using MediatR;
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Runtime.Serialization;
|
|
||||||
|
|
||||||
namespace Ordering.API.Application.Commands
|
|
||||||
{
|
|
||||||
public class SetStockRejectedOrderStatusCommand : IRequest<bool>
|
public class SetStockRejectedOrderStatusCommand : IRequest<bool>
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -19,4 +15,3 @@ namespace Ordering.API.Application.Commands
|
|||||||
OrderStockItems = orderStockItems;
|
OrderStockItems = orderStockItems;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
@ -1,13 +1,5 @@
|
|||||||
using MediatR;
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands;
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands;
|
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.OrderAggregate;
|
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.Infrastructure.Idempotency;
|
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
using System.Threading;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace Ordering.API.Application.Commands
|
|
||||||
{
|
|
||||||
// Regular CommandHandler
|
// Regular CommandHandler
|
||||||
public class SetStockRejectedOrderStatusCommandHandler : IRequestHandler<SetStockRejectedOrderStatusCommand, bool>
|
public class SetStockRejectedOrderStatusCommandHandler : IRequestHandler<SetStockRejectedOrderStatusCommand, bool>
|
||||||
{
|
{
|
||||||
@ -58,4 +50,3 @@ namespace Ordering.API.Application.Commands
|
|||||||
return true; // Ignore duplicate requests for processing order.
|
return true; // Ignore duplicate requests for processing order.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -1,8 +1,5 @@
|
|||||||
using MediatR;
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands;
|
||||||
using System.Runtime.Serialization;
|
|
||||||
|
|
||||||
namespace Ordering.API.Application.Commands
|
|
||||||
{
|
|
||||||
public class ShipOrderCommand : IRequest<bool>
|
public class ShipOrderCommand : IRequest<bool>
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -14,4 +11,3 @@ namespace Ordering.API.Application.Commands
|
|||||||
OrderNumber = orderNumber;
|
OrderNumber = orderNumber;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
@ -1,13 +1,5 @@
|
|||||||
using MediatR;
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands;
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands;
|
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.OrderAggregate;
|
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.Infrastructure.Idempotency;
|
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
using System.Threading;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace Ordering.API.Application.Commands
|
|
||||||
{
|
|
||||||
// Regular CommandHandler
|
// Regular CommandHandler
|
||||||
public class ShipOrderCommandHandler : IRequestHandler<ShipOrderCommand, bool>
|
public class ShipOrderCommandHandler : IRequestHandler<ShipOrderCommand, bool>
|
||||||
{
|
{
|
||||||
@ -54,4 +46,3 @@ namespace Ordering.API.Application.Commands
|
|||||||
return true; // Ignore duplicate requests for processing order.
|
return true; // Ignore duplicate requests for processing order.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -1,13 +1,5 @@
|
|||||||
using MediatR;
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.DomainEventHandlers.BuyerAndPaymentMethodVerified;
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.OrderAggregate;
|
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
using Ordering.Domain.Events;
|
|
||||||
using System;
|
|
||||||
using System.Threading;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace Ordering.API.Application.DomainEventHandlers.BuyerAndPaymentMethodVerified
|
|
||||||
{
|
|
||||||
public class UpdateOrderWhenBuyerAndPaymentMethodVerifiedDomainEventHandler
|
public class UpdateOrderWhenBuyerAndPaymentMethodVerifiedDomainEventHandler
|
||||||
: INotificationHandler<BuyerAndPaymentMethodVerifiedDomainEvent>
|
: INotificationHandler<BuyerAndPaymentMethodVerifiedDomainEvent>
|
||||||
{
|
{
|
||||||
@ -35,4 +27,3 @@ namespace Ordering.API.Application.DomainEventHandlers.BuyerAndPaymentMethodVeri
|
|||||||
buyerPaymentMethodVerifiedEvent.OrderId, nameof(buyerPaymentMethodVerifiedEvent.Payment), buyerPaymentMethodVerifiedEvent.Payment.Id);
|
buyerPaymentMethodVerifiedEvent.OrderId, nameof(buyerPaymentMethodVerifiedEvent.Payment), buyerPaymentMethodVerifiedEvent.Payment.Id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -1,16 +1,7 @@
|
|||||||
using MediatR;
|
using Microsoft.eShopOnContainers.Services.Ordering.Domain.Events;
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.BuyerAggregate;
|
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.OrderAggregate;
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.DomainEventHandlers.OrderCancelled;
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
using Ordering.API.Application.IntegrationEvents;
|
|
||||||
using Ordering.API.Application.IntegrationEvents.Events;
|
|
||||||
using Ordering.Domain.Events;
|
|
||||||
using System;
|
|
||||||
using System.Threading;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace Ordering.API.Application.DomainEventHandlers.OrderCancelled
|
|
||||||
{
|
|
||||||
public class OrderCancelledDomainEventHandler
|
public class OrderCancelledDomainEventHandler
|
||||||
: INotificationHandler<OrderCancelledDomainEvent>
|
: INotificationHandler<OrderCancelledDomainEvent>
|
||||||
{
|
{
|
||||||
@ -44,4 +35,3 @@ namespace Ordering.API.Application.DomainEventHandlers.OrderCancelled
|
|||||||
await _orderingIntegrationEventService.AddAndSaveEventAsync(orderStatusChangedToCancelledIntegrationEvent);
|
await _orderingIntegrationEventService.AddAndSaveEventAsync(orderStatusChangedToCancelledIntegrationEvent);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -1,16 +1,4 @@
|
|||||||
namespace Ordering.API.Application.DomainEventHandlers.OrderGracePeriodConfirmed
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.DomainEventHandlers.OrderGracePeriodConfirmed;
|
||||||
{
|
|
||||||
using Domain.Events;
|
|
||||||
using MediatR;
|
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.BuyerAggregate;
|
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.OrderAggregate;
|
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
using Ordering.API.Application.IntegrationEvents;
|
|
||||||
using Ordering.API.Application.IntegrationEvents.Events;
|
|
||||||
using System;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Threading;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
public class OrderStatusChangedToAwaitingValidationDomainEventHandler
|
public class OrderStatusChangedToAwaitingValidationDomainEventHandler
|
||||||
: INotificationHandler<OrderStatusChangedToAwaitingValidationDomainEvent>
|
: INotificationHandler<OrderStatusChangedToAwaitingValidationDomainEvent>
|
||||||
@ -49,4 +37,3 @@
|
|||||||
await _orderingIntegrationEventService.AddAndSaveEventAsync(orderStatusChangedToAwaitingValidationIntegrationEvent);
|
await _orderingIntegrationEventService.AddAndSaveEventAsync(orderStatusChangedToAwaitingValidationIntegrationEvent);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
@ -1,16 +1,4 @@
|
|||||||
namespace Ordering.API.Application.DomainEventHandlers.OrderPaid
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.DomainEventHandlers.OrderPaid;
|
||||||
{
|
|
||||||
using Domain.Events;
|
|
||||||
using MediatR;
|
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.BuyerAggregate;
|
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.OrderAggregate;
|
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
using Ordering.API.Application.IntegrationEvents;
|
|
||||||
using Ordering.API.Application.IntegrationEvents.Events;
|
|
||||||
using System;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Threading;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
public class OrderStatusChangedToPaidDomainEventHandler
|
public class OrderStatusChangedToPaidDomainEventHandler
|
||||||
: INotificationHandler<OrderStatusChangedToPaidDomainEvent>
|
: INotificationHandler<OrderStatusChangedToPaidDomainEvent>
|
||||||
@ -54,4 +42,3 @@
|
|||||||
await _orderingIntegrationEventService.AddAndSaveEventAsync(orderStatusChangedToPaidIntegrationEvent);
|
await _orderingIntegrationEventService.AddAndSaveEventAsync(orderStatusChangedToPaidIntegrationEvent);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
@ -1,16 +1,5 @@
|
|||||||
using MediatR;
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.DomainEventHandlers.OrderShipped;
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.BuyerAggregate;
|
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.OrderAggregate;
|
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
using Ordering.API.Application.IntegrationEvents;
|
|
||||||
using Ordering.API.Application.IntegrationEvents.Events;
|
|
||||||
using Ordering.Domain.Events;
|
|
||||||
using System;
|
|
||||||
using System.Threading;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace Ordering.API.Application.DomainEventHandlers.OrderShipped
|
|
||||||
{
|
|
||||||
public class OrderShippedDomainEventHandler
|
public class OrderShippedDomainEventHandler
|
||||||
: INotificationHandler<OrderShippedDomainEvent>
|
: INotificationHandler<OrderShippedDomainEvent>
|
||||||
{
|
{
|
||||||
@ -44,4 +33,3 @@ namespace Ordering.API.Application.DomainEventHandlers.OrderShipped
|
|||||||
await _orderingIntegrationEventService.AddAndSaveEventAsync(orderStatusChangedToShippedIntegrationEvent);
|
await _orderingIntegrationEventService.AddAndSaveEventAsync(orderStatusChangedToShippedIntegrationEvent);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
namespace Ordering.API.Application.DomainEventHandlers.OrderStartedEvent
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.DomainEventHandlers.OrderStartedEvent;
|
||||||
{
|
|
||||||
public class SendEmailToCustomerWhenOrderStartedDomainEventHandler
|
public class SendEmailToCustomerWhenOrderStartedDomainEventHandler
|
||||||
//: IAsyncNotificationHandler<OrderStartedDomainEvent>
|
//: IAsyncNotificationHandler<OrderStartedDomainEvent>
|
||||||
{
|
{
|
||||||
@ -13,4 +13,3 @@
|
|||||||
// //TBD - Send email logic
|
// //TBD - Send email logic
|
||||||
//}
|
//}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -1,16 +1,5 @@
|
|||||||
using MediatR;
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.DomainEventHandlers.OrderStartedEvent;
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure.Services;
|
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.BuyerAggregate;
|
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
using Ordering.API.Application.IntegrationEvents;
|
|
||||||
using Ordering.API.Application.IntegrationEvents.Events;
|
|
||||||
using Ordering.Domain.Events;
|
|
||||||
using System;
|
|
||||||
using System.Threading;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace Ordering.API.Application.DomainEventHandlers.OrderStartedEvent
|
|
||||||
{
|
|
||||||
public class ValidateOrAddBuyerAggregateWhenOrderStartedDomainEventHandler
|
public class ValidateOrAddBuyerAggregateWhenOrderStartedDomainEventHandler
|
||||||
: INotificationHandler<OrderStartedDomainEvent>
|
: INotificationHandler<OrderStartedDomainEvent>
|
||||||
{
|
{
|
||||||
@ -64,4 +53,3 @@ namespace Ordering.API.Application.DomainEventHandlers.OrderStartedEvent
|
|||||||
buyerUpdated.Id, orderStartedEvent.Order.Id);
|
buyerUpdated.Id, orderStartedEvent.Order.Id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -1,15 +1,4 @@
|
|||||||
namespace Ordering.API.Application.DomainEventHandlers.OrderStockConfirmed
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.DomainEventHandlers.OrderStockConfirmed;
|
||||||
{
|
|
||||||
using Domain.Events;
|
|
||||||
using MediatR;
|
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.BuyerAggregate;
|
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.OrderAggregate;
|
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
using Ordering.API.Application.IntegrationEvents;
|
|
||||||
using Ordering.API.Application.IntegrationEvents.Events;
|
|
||||||
using System;
|
|
||||||
using System.Threading;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
public class OrderStatusChangedToStockConfirmedDomainEventHandler
|
public class OrderStatusChangedToStockConfirmedDomainEventHandler
|
||||||
: INotificationHandler<OrderStatusChangedToStockConfirmedDomainEvent>
|
: INotificationHandler<OrderStatusChangedToStockConfirmedDomainEvent>
|
||||||
@ -44,4 +33,3 @@
|
|||||||
await _orderingIntegrationEventService.AddAndSaveEventAsync(orderStatusChangedToStockConfirmedIntegrationEvent);
|
await _orderingIntegrationEventService.AddAndSaveEventAsync(orderStatusChangedToStockConfirmedIntegrationEvent);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
@ -1,14 +1,5 @@
|
|||||||
using MediatR;
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.IntegrationEvents.EventHandling;
|
||||||
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Abstractions;
|
|
||||||
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Extensions;
|
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
using Ordering.API.Application.Commands;
|
|
||||||
using Ordering.API.Application.IntegrationEvents.Events;
|
|
||||||
using Serilog.Context;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace Ordering.API.Application.IntegrationEvents.EventHandling
|
|
||||||
{
|
|
||||||
public class GracePeriodConfirmedIntegrationEventHandler : IIntegrationEventHandler<GracePeriodConfirmedIntegrationEvent>
|
public class GracePeriodConfirmedIntegrationEventHandler : IIntegrationEventHandler<GracePeriodConfirmedIntegrationEvent>
|
||||||
{
|
{
|
||||||
private readonly IMediator _mediator;
|
private readonly IMediator _mediator;
|
||||||
@ -49,4 +40,3 @@ namespace Ordering.API.Application.IntegrationEvents.EventHandling
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -1,14 +1,4 @@
|
|||||||
namespace Ordering.API.Application.IntegrationEvents.EventHandling
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.IntegrationEvents.EventHandling;
|
||||||
{
|
|
||||||
using MediatR;
|
|
||||||
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Abstractions;
|
|
||||||
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Extensions;
|
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
using Ordering.API.Application.Commands;
|
|
||||||
using Ordering.API.Application.IntegrationEvents.Events;
|
|
||||||
using Serilog.Context;
|
|
||||||
using System;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
public class OrderPaymentFailedIntegrationEventHandler :
|
public class OrderPaymentFailedIntegrationEventHandler :
|
||||||
IIntegrationEventHandler<OrderPaymentFailedIntegrationEvent>
|
IIntegrationEventHandler<OrderPaymentFailedIntegrationEvent>
|
||||||
@ -43,4 +33,3 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -1,14 +1,4 @@
|
|||||||
namespace Ordering.API.Application.IntegrationEvents.EventHandling
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.IntegrationEvents.EventHandling;
|
||||||
{
|
|
||||||
using MediatR;
|
|
||||||
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Abstractions;
|
|
||||||
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Extensions;
|
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
using Ordering.API.Application.Commands;
|
|
||||||
using Ordering.API.Application.IntegrationEvents.Events;
|
|
||||||
using Serilog.Context;
|
|
||||||
using System;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
public class OrderPaymentSucceededIntegrationEventHandler :
|
public class OrderPaymentSucceededIntegrationEventHandler :
|
||||||
IIntegrationEventHandler<OrderPaymentSucceededIntegrationEvent>
|
IIntegrationEventHandler<OrderPaymentSucceededIntegrationEvent>
|
||||||
@ -43,4 +33,3 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
@ -1,14 +1,4 @@
|
|||||||
namespace Ordering.API.Application.IntegrationEvents.EventHandling
|
namespace Ordering.API.Application.IntegrationEvents.EventHandling;
|
||||||
{
|
|
||||||
using Events;
|
|
||||||
using MediatR;
|
|
||||||
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Abstractions;
|
|
||||||
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Extensions;
|
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
using Ordering.API.Application.Commands;
|
|
||||||
using Serilog.Context;
|
|
||||||
using System;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
public class OrderStockConfirmedIntegrationEventHandler :
|
public class OrderStockConfirmedIntegrationEventHandler :
|
||||||
IIntegrationEventHandler<OrderStockConfirmedIntegrationEvent>
|
IIntegrationEventHandler<OrderStockConfirmedIntegrationEvent>
|
||||||
@ -43,4 +33,3 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
@ -1,15 +1,4 @@
|
|||||||
namespace Ordering.API.Application.IntegrationEvents.EventHandling
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.IntegrationEvents.EventHandling;
|
||||||
{
|
|
||||||
using Events;
|
|
||||||
using MediatR;
|
|
||||||
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Abstractions;
|
|
||||||
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Extensions;
|
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
using Ordering.API.Application.Commands;
|
|
||||||
using Serilog.Context;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
public class OrderStockRejectedIntegrationEventHandler : IIntegrationEventHandler<OrderStockRejectedIntegrationEvent>
|
public class OrderStockRejectedIntegrationEventHandler : IIntegrationEventHandler<OrderStockRejectedIntegrationEvent>
|
||||||
{
|
{
|
||||||
private readonly IMediator _mediator;
|
private readonly IMediator _mediator;
|
||||||
@ -47,4 +36,3 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
@ -1,15 +1,5 @@
|
|||||||
using MediatR;
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.IntegrationEvents.EventHandling;
|
||||||
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Abstractions;
|
|
||||||
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Extensions;
|
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands;
|
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
using Ordering.API.Application.IntegrationEvents.Events;
|
|
||||||
using Serilog.Context;
|
|
||||||
using System;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace Ordering.API.Application.IntegrationEvents.EventHandling
|
|
||||||
{
|
|
||||||
public class UserCheckoutAcceptedIntegrationEventHandler : IIntegrationEventHandler<UserCheckoutAcceptedIntegrationEvent>
|
public class UserCheckoutAcceptedIntegrationEventHandler : IIntegrationEventHandler<UserCheckoutAcceptedIntegrationEvent>
|
||||||
{
|
{
|
||||||
private readonly IMediator _mediator;
|
private readonly IMediator _mediator;
|
||||||
@ -77,4 +67,3 @@ namespace Ordering.API.Application.IntegrationEvents.EventHandling
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
@ -1,6 +1,4 @@
|
|||||||
namespace Ordering.API.Application.IntegrationEvents.Events
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.IntegrationEvents.Events;
|
||||||
{
|
|
||||||
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Events;
|
|
||||||
|
|
||||||
public record GracePeriodConfirmedIntegrationEvent : IntegrationEvent
|
public record GracePeriodConfirmedIntegrationEvent : IntegrationEvent
|
||||||
{
|
{
|
||||||
@ -9,4 +7,4 @@
|
|||||||
public GracePeriodConfirmedIntegrationEvent(int orderId) =>
|
public GracePeriodConfirmedIntegrationEvent(int orderId) =>
|
||||||
OrderId = orderId;
|
OrderId = orderId;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -1,6 +1,4 @@
|
|||||||
namespace Ordering.API.Application.IntegrationEvents.Events
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.IntegrationEvents.Events;
|
||||||
{
|
|
||||||
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Events;
|
|
||||||
|
|
||||||
public record OrderPaymentFailedIntegrationEvent : IntegrationEvent
|
public record OrderPaymentFailedIntegrationEvent : IntegrationEvent
|
||||||
{
|
{
|
||||||
@ -8,4 +6,3 @@
|
|||||||
|
|
||||||
public OrderPaymentFailedIntegrationEvent(int orderId) => OrderId = orderId;
|
public OrderPaymentFailedIntegrationEvent(int orderId) => OrderId = orderId;
|
||||||
}
|
}
|
||||||
}
|
|
@ -1,6 +1,4 @@
|
|||||||
namespace Ordering.API.Application.IntegrationEvents.Events
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.IntegrationEvents.Events;
|
||||||
{
|
|
||||||
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Events;
|
|
||||||
|
|
||||||
public record OrderPaymentSucceededIntegrationEvent : IntegrationEvent
|
public record OrderPaymentSucceededIntegrationEvent : IntegrationEvent
|
||||||
{
|
{
|
||||||
@ -8,4 +6,3 @@
|
|||||||
|
|
||||||
public OrderPaymentSucceededIntegrationEvent(int orderId) => OrderId = orderId;
|
public OrderPaymentSucceededIntegrationEvent(int orderId) => OrderId = orderId;
|
||||||
}
|
}
|
||||||
}
|
|
@ -1,7 +1,5 @@
|
|||||||
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Events;
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.IntegrationEvents.Events;
|
||||||
|
|
||||||
namespace Ordering.API.Application.IntegrationEvents.Events
|
|
||||||
{
|
|
||||||
// Integration Events notes:
|
// Integration Events notes:
|
||||||
// An Event is “something that has happened in the past”, therefore its name has to be
|
// An Event is “something that has happened in the past”, therefore its name has to be
|
||||||
// An Integration Event is an event that can cause side effects to other microsrvices, Bounded-Contexts or external systems.
|
// An Integration Event is an event that can cause side effects to other microsrvices, Bounded-Contexts or external systems.
|
||||||
@ -12,4 +10,3 @@ namespace Ordering.API.Application.IntegrationEvents.Events
|
|||||||
public OrderStartedIntegrationEvent(string userId)
|
public OrderStartedIntegrationEvent(string userId)
|
||||||
=> UserId = userId;
|
=> UserId = userId;
|
||||||
}
|
}
|
||||||
}
|
|
@ -1,7 +1,4 @@
|
|||||||
namespace Ordering.API.Application.IntegrationEvents.Events
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.IntegrationEvents.Events;
|
||||||
{
|
|
||||||
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Events;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
|
|
||||||
public record OrderStatusChangedToAwaitingValidationIntegrationEvent : IntegrationEvent
|
public record OrderStatusChangedToAwaitingValidationIntegrationEvent : IntegrationEvent
|
||||||
{
|
{
|
||||||
@ -31,4 +28,3 @@
|
|||||||
Units = units;
|
Units = units;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
@ -1,7 +1,5 @@
|
|||||||
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Events;
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.IntegrationEvents.Events;
|
||||||
|
|
||||||
namespace Ordering.API.Application.IntegrationEvents.Events
|
|
||||||
{
|
|
||||||
public record OrderStatusChangedToCancelledIntegrationEvent : IntegrationEvent
|
public record OrderStatusChangedToCancelledIntegrationEvent : IntegrationEvent
|
||||||
{
|
{
|
||||||
public int OrderId { get; }
|
public int OrderId { get; }
|
||||||
@ -15,4 +13,3 @@ namespace Ordering.API.Application.IntegrationEvents.Events
|
|||||||
BuyerName = buyerName;
|
BuyerName = buyerName;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -1,7 +1,4 @@
|
|||||||
namespace Ordering.API.Application.IntegrationEvents.Events
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.IntegrationEvents.Events;
|
||||||
{
|
|
||||||
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Events;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
|
|
||||||
public record OrderStatusChangedToPaidIntegrationEvent : IntegrationEvent
|
public record OrderStatusChangedToPaidIntegrationEvent : IntegrationEvent
|
||||||
{
|
{
|
||||||
@ -21,4 +18,4 @@
|
|||||||
BuyerName = buyerName;
|
BuyerName = buyerName;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Events;
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.IntegrationEvents.Events;
|
||||||
|
|
||||||
namespace Ordering.API.Application.IntegrationEvents.Events
|
|
||||||
{
|
|
||||||
public record OrderStatusChangedToShippedIntegrationEvent : IntegrationEvent
|
public record OrderStatusChangedToShippedIntegrationEvent : IntegrationEvent
|
||||||
{
|
{
|
||||||
public int OrderId { get; }
|
public int OrderId { get; }
|
||||||
@ -15,4 +13,3 @@ namespace Ordering.API.Application.IntegrationEvents.Events
|
|||||||
BuyerName = buyerName;
|
BuyerName = buyerName;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -1,6 +1,4 @@
|
|||||||
namespace Ordering.API.Application.IntegrationEvents.Events
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.IntegrationEvents.Events;
|
||||||
{
|
|
||||||
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Events;
|
|
||||||
|
|
||||||
public record OrderStatusChangedToStockConfirmedIntegrationEvent : IntegrationEvent
|
public record OrderStatusChangedToStockConfirmedIntegrationEvent : IntegrationEvent
|
||||||
{
|
{
|
||||||
@ -15,4 +13,3 @@
|
|||||||
BuyerName = buyerName;
|
BuyerName = buyerName;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
@ -1,7 +1,5 @@
|
|||||||
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Events;
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.IntegrationEvents.Events;
|
||||||
|
|
||||||
namespace Ordering.API.Application.IntegrationEvents.Events
|
|
||||||
{
|
|
||||||
public record OrderStatusChangedToSubmittedIntegrationEvent : IntegrationEvent
|
public record OrderStatusChangedToSubmittedIntegrationEvent : IntegrationEvent
|
||||||
{
|
{
|
||||||
public int OrderId { get; }
|
public int OrderId { get; }
|
||||||
@ -15,4 +13,3 @@ namespace Ordering.API.Application.IntegrationEvents.Events
|
|||||||
BuyerName = buyerName;
|
BuyerName = buyerName;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -1,6 +1,4 @@
|
|||||||
namespace Ordering.API.Application.IntegrationEvents.Events
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.IntegrationEvents.Events;
|
||||||
{
|
|
||||||
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Events;
|
|
||||||
|
|
||||||
public record OrderStockConfirmedIntegrationEvent : IntegrationEvent
|
public record OrderStockConfirmedIntegrationEvent : IntegrationEvent
|
||||||
{
|
{
|
||||||
@ -8,4 +6,3 @@
|
|||||||
|
|
||||||
public OrderStockConfirmedIntegrationEvent(int orderId) => OrderId = orderId;
|
public OrderStockConfirmedIntegrationEvent(int orderId) => OrderId = orderId;
|
||||||
}
|
}
|
||||||
}
|
|
@ -1,7 +1,4 @@
|
|||||||
namespace Ordering.API.Application.IntegrationEvents.Events
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.IntegrationEvents.Events;
|
||||||
{
|
|
||||||
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Events;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
|
|
||||||
public record OrderStockRejectedIntegrationEvent : IntegrationEvent
|
public record OrderStockRejectedIntegrationEvent : IntegrationEvent
|
||||||
{
|
{
|
||||||
@ -28,4 +25,3 @@
|
|||||||
HasStock = hasStock;
|
HasStock = hasStock;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
@ -1,9 +1,5 @@
|
|||||||
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Events;
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.IntegrationEvents.Events;
|
||||||
using Ordering.API.Application.Models;
|
|
||||||
using System;
|
|
||||||
|
|
||||||
namespace Ordering.API.Application.IntegrationEvents.Events
|
|
||||||
{
|
|
||||||
public record UserCheckoutAcceptedIntegrationEvent : IntegrationEvent
|
public record UserCheckoutAcceptedIntegrationEvent : IntegrationEvent
|
||||||
{
|
{
|
||||||
public string UserId { get; }
|
public string UserId { get; }
|
||||||
@ -59,4 +55,3 @@ namespace Ordering.API.Application.IntegrationEvents.Events
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -1,12 +1,7 @@
|
|||||||
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Events;
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.IntegrationEvents;
|
||||||
using System;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace Ordering.API.Application.IntegrationEvents
|
|
||||||
{
|
|
||||||
public interface IOrderingIntegrationEventService
|
public interface IOrderingIntegrationEventService
|
||||||
{
|
{
|
||||||
Task PublishEventsThroughEventBusAsync(Guid transactionId);
|
Task PublishEventsThroughEventBusAsync(Guid transactionId);
|
||||||
Task AddAndSaveEventAsync(IntegrationEvent evt);
|
Task AddAndSaveEventAsync(IntegrationEvent evt);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -1,16 +1,5 @@
|
|||||||
using Microsoft.EntityFrameworkCore;
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.IntegrationEvents;
|
||||||
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Abstractions;
|
|
||||||
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Events;
|
|
||||||
using Microsoft.eShopOnContainers.BuildingBlocks.IntegrationEventLogEF;
|
|
||||||
using Microsoft.eShopOnContainers.BuildingBlocks.IntegrationEventLogEF.Services;
|
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.Infrastructure;
|
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
using System;
|
|
||||||
using System.Data.Common;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace Ordering.API.Application.IntegrationEvents
|
|
||||||
{
|
|
||||||
public class OrderingIntegrationEventService : IOrderingIntegrationEventService
|
public class OrderingIntegrationEventService : IOrderingIntegrationEventService
|
||||||
{
|
{
|
||||||
private readonly Func<DbConnection, IIntegrationEventLogService> _integrationEventLogServiceFactory;
|
private readonly Func<DbConnection, IIntegrationEventLogService> _integrationEventLogServiceFactory;
|
||||||
@ -62,4 +51,3 @@ namespace Ordering.API.Application.IntegrationEvents
|
|||||||
await _eventLogService.SaveEventAsync(evt, _orderingContext.GetCurrentTransaction());
|
await _eventLogService.SaveEventAsync(evt, _orderingContext.GetCurrentTransaction());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
namespace Ordering.API.Application.Models
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Models;
|
||||||
{
|
|
||||||
public class BasketItem
|
public class BasketItem
|
||||||
{
|
{
|
||||||
public string Id { get; init; }
|
public string Id { get; init; }
|
||||||
@ -10,4 +10,4 @@
|
|||||||
public int Quantity { get; init; }
|
public int Quantity { get; init; }
|
||||||
public string PictureUrl { get; init; }
|
public string PictureUrl { get; init; }
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
using System.Collections.Generic;
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Models;
|
||||||
|
|
||||||
namespace Ordering.API.Application.Models
|
|
||||||
{
|
|
||||||
public class CustomerBasket
|
public class CustomerBasket
|
||||||
{
|
{
|
||||||
public string BuyerId { get; set; }
|
public string BuyerId { get; set; }
|
||||||
@ -13,4 +11,3 @@ namespace Ordering.API.Application.Models
|
|||||||
Items = items;
|
Items = items;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -1,8 +1,4 @@
|
|||||||
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Queries
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Queries;
|
||||||
{
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
public interface IOrderQueries
|
public interface IOrderQueries
|
||||||
{
|
{
|
||||||
@ -12,4 +8,3 @@
|
|||||||
|
|
||||||
Task<IEnumerable<CardType>> GetCardTypesAsync();
|
Task<IEnumerable<CardType>> GetCardTypesAsync();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -1,10 +1,4 @@
|
|||||||
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Queries
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Queries;
|
||||||
{
|
|
||||||
using Dapper;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Data.SqlClient;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
public class OrderQueries
|
public class OrderQueries
|
||||||
: IOrderQueries
|
: IOrderQueries
|
||||||
@ -102,4 +96,3 @@
|
|||||||
return order;
|
return order;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -1,8 +1,5 @@
|
|||||||
using System;
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Queries;
|
||||||
using System.Collections.Generic;
|
|
||||||
|
|
||||||
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Queries
|
|
||||||
{
|
|
||||||
public record Orderitem
|
public record Orderitem
|
||||||
{
|
{
|
||||||
public string productname { get; init; }
|
public string productname { get; init; }
|
||||||
@ -38,4 +35,3 @@ namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Queries
|
|||||||
public int Id { get; init; }
|
public int Id { get; init; }
|
||||||
public string Name { get; init; }
|
public string Name { get; init; }
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -1,9 +1,5 @@
|
|||||||
using FluentValidation;
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Validations;
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
using Ordering.API.Application.Commands;
|
|
||||||
|
|
||||||
namespace Ordering.API.Application.Validations
|
|
||||||
{
|
|
||||||
public class CancelOrderCommandValidator : AbstractValidator<CancelOrderCommand>
|
public class CancelOrderCommandValidator : AbstractValidator<CancelOrderCommand>
|
||||||
{
|
{
|
||||||
public CancelOrderCommandValidator(ILogger<CancelOrderCommandValidator> logger)
|
public CancelOrderCommandValidator(ILogger<CancelOrderCommandValidator> logger)
|
||||||
@ -13,4 +9,3 @@ namespace Ordering.API.Application.Validations
|
|||||||
logger.LogTrace("----- INSTANCE CREATED - {ClassName}", GetType().Name);
|
logger.LogTrace("----- INSTANCE CREATED - {ClassName}", GetType().Name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
@ -1,13 +1,7 @@
|
|||||||
using FluentValidation;
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Validations;
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands;
|
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using static Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands.CreateOrderCommand;
|
using static Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands.CreateOrderCommand;
|
||||||
|
|
||||||
namespace Ordering.API.Application.Validations
|
|
||||||
{
|
|
||||||
public class CreateOrderCommandValidator : AbstractValidator<CreateOrderCommand>
|
public class CreateOrderCommandValidator : AbstractValidator<CreateOrderCommand>
|
||||||
{
|
{
|
||||||
public CreateOrderCommandValidator(ILogger<CreateOrderCommandValidator> logger)
|
public CreateOrderCommandValidator(ILogger<CreateOrderCommandValidator> logger)
|
||||||
@ -37,4 +31,3 @@ namespace Ordering.API.Application.Validations
|
|||||||
return orderItems.Any();
|
return orderItems.Any();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
@ -1,9 +1,5 @@
|
|||||||
using FluentValidation;
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Validations;
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands;
|
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
|
|
||||||
namespace Ordering.API.Application.Validations
|
|
||||||
{
|
|
||||||
public class IdentifiedCommandValidator : AbstractValidator<IdentifiedCommand<CreateOrderCommand, bool>>
|
public class IdentifiedCommandValidator : AbstractValidator<IdentifiedCommand<CreateOrderCommand, bool>>
|
||||||
{
|
{
|
||||||
public IdentifiedCommandValidator(ILogger<IdentifiedCommandValidator> logger)
|
public IdentifiedCommandValidator(ILogger<IdentifiedCommandValidator> logger)
|
||||||
@ -13,4 +9,3 @@ namespace Ordering.API.Application.Validations
|
|||||||
logger.LogTrace("----- INSTANCE CREATED - {ClassName}", GetType().Name);
|
logger.LogTrace("----- INSTANCE CREATED - {ClassName}", GetType().Name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -1,9 +1,5 @@
|
|||||||
using FluentValidation;
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Validations;
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
using Ordering.API.Application.Commands;
|
|
||||||
|
|
||||||
namespace Ordering.API.Application.Validations
|
|
||||||
{
|
|
||||||
public class ShipOrderCommandValidator : AbstractValidator<ShipOrderCommand>
|
public class ShipOrderCommandValidator : AbstractValidator<ShipOrderCommand>
|
||||||
{
|
{
|
||||||
public ShipOrderCommandValidator(ILogger<ShipOrderCommandValidator> logger)
|
public ShipOrderCommandValidator(ILogger<ShipOrderCommandValidator> logger)
|
||||||
@ -13,4 +9,3 @@ namespace Ordering.API.Application.Validations
|
|||||||
logger.LogTrace("----- INSTANCE CREATED - {ClassName}", GetType().Name);
|
logger.LogTrace("----- INSTANCE CREATED - {ClassName}", GetType().Name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
@ -1,7 +1,5 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Controllers;
|
||||||
|
|
||||||
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Controllers
|
|
||||||
{
|
|
||||||
public class HomeController : Controller
|
public class HomeController : Controller
|
||||||
{
|
{
|
||||||
// GET: /<controller>/
|
// GET: /<controller>/
|
||||||
@ -10,4 +8,3 @@ namespace Microsoft.eShopOnContainers.Services.Ordering.API.Controllers
|
|||||||
return new RedirectResult("~/swagger");
|
return new RedirectResult("~/swagger");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -1,19 +1,10 @@
|
|||||||
using MediatR;
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Controllers;
|
||||||
using Microsoft.AspNetCore.Authorization;
|
|
||||||
using Microsoft.AspNetCore.Mvc;
|
|
||||||
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Extensions;
|
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Extensions;
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands;
|
using Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands;
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.API.Application.Queries;
|
using Microsoft.eShopOnContainers.Services.Ordering.API.Application.Queries;
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure.Services;
|
using Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure.Services;
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
using Ordering.API.Application.Commands;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Net;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Controllers
|
|
||||||
{
|
|
||||||
[Route("api/v1/[controller]")]
|
[Route("api/v1/[controller]")]
|
||||||
[Authorize]
|
[Authorize]
|
||||||
[ApiController]
|
[ApiController]
|
||||||
@ -150,4 +141,3 @@ namespace Microsoft.eShopOnContainers.Services.Ordering.API.Controllers
|
|||||||
return await _mediator.Send(createOrderDraftCommand);
|
return await _mediator.Send(createOrderDraftCommand);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
using System.Collections.Generic;
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Models;
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
using static Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands.CreateOrderCommand;
|
using static Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands.CreateOrderCommand;
|
||||||
|
|
||||||
namespace Ordering.API.Application.Models
|
|
||||||
{
|
|
||||||
public static class BasketItemExtensions
|
public static class BasketItemExtensions
|
||||||
{
|
{
|
||||||
public static IEnumerable<OrderItemDTO> ToOrderItemsDTO(this IEnumerable<BasketItem> basketItems)
|
public static IEnumerable<OrderItemDTO> ToOrderItemsDTO(this IEnumerable<BasketItem> basketItems)
|
||||||
@ -25,4 +25,3 @@ namespace Ordering.API.Application.Models
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -1,9 +1,5 @@
|
|||||||
using System;
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Extensions;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
|
|
||||||
namespace Ordering.API.Extensions
|
|
||||||
{
|
|
||||||
public static class LinqSelectExtensions
|
public static class LinqSelectExtensions
|
||||||
{
|
{
|
||||||
public static IEnumerable<SelectTryResult<TSource, TResult>> SelectTry<TSource, TResult>(this IEnumerable<TSource> enumerable, Func<TSource, TResult> selector)
|
public static IEnumerable<SelectTryResult<TSource, TResult>> SelectTry<TSource, TResult>(this IEnumerable<TSource> enumerable, Func<TSource, TResult> selector)
|
||||||
@ -47,4 +43,3 @@ namespace Ordering.API.Extensions
|
|||||||
public Exception CaughtException { get; private set; }
|
public Exception CaughtException { get; private set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -1,16 +1,5 @@
|
|||||||
using Google.Protobuf.Collections;
|
namespace GrpcOrdering;
|
||||||
using Grpc.Core;
|
|
||||||
using MediatR;
|
|
||||||
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Extensions;
|
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using ApiModels = Ordering.API.Application.Models;
|
|
||||||
using AppCommand = Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands;
|
|
||||||
|
|
||||||
namespace GrpcOrdering
|
|
||||||
{
|
|
||||||
public class OrderingService : OrderingGrpc.OrderingGrpcBase
|
public class OrderingService : OrderingGrpc.OrderingGrpcBase
|
||||||
{
|
{
|
||||||
private readonly IMediator _mediator;
|
private readonly IMediator _mediator;
|
||||||
@ -87,4 +76,3 @@ namespace GrpcOrdering
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -1,7 +1,4 @@
|
|||||||
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure.ActionResults
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure.ActionResults;
|
||||||
{
|
|
||||||
using AspNetCore.Http;
|
|
||||||
using Microsoft.AspNetCore.Mvc;
|
|
||||||
|
|
||||||
public class InternalServerErrorObjectResult : ObjectResult
|
public class InternalServerErrorObjectResult : ObjectResult
|
||||||
{
|
{
|
||||||
@ -11,4 +8,3 @@
|
|||||||
StatusCode = StatusCodes.Status500InternalServerError;
|
StatusCode = StatusCodes.Status500InternalServerError;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -1,11 +1,5 @@
|
|||||||
using Microsoft.AspNetCore.Mvc.Authorization;
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure.Auth;
|
||||||
using Microsoft.OpenApi.Models;
|
|
||||||
using Swashbuckle.AspNetCore.SwaggerGen;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
|
|
||||||
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure.Auth
|
|
||||||
{
|
|
||||||
public class AuthorizationHeaderParameterOperationFilter : IOperationFilter
|
public class AuthorizationHeaderParameterOperationFilter : IOperationFilter
|
||||||
{
|
{
|
||||||
public void Apply(OpenApiOperation operation, OperationFilterContext context)
|
public void Apply(OpenApiOperation operation, OperationFilterContext context)
|
||||||
@ -31,4 +25,3 @@ namespace Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure.Auth
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -1,15 +1,4 @@
|
|||||||
using Autofac;
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure.AutofacModules;
|
||||||
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Abstractions;
|
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands;
|
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.API.Application.Queries;
|
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.BuyerAggregate;
|
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.OrderAggregate;
|
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.Infrastructure.Idempotency;
|
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.Infrastructure.Repositories;
|
|
||||||
using System.Reflection;
|
|
||||||
|
|
||||||
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure.AutofacModules
|
|
||||||
{
|
|
||||||
|
|
||||||
public class ApplicationModule
|
public class ApplicationModule
|
||||||
: Autofac.Module
|
: Autofac.Module
|
||||||
@ -47,4 +36,3 @@ namespace Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure.Autof
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -1,15 +1,5 @@
|
|||||||
using Autofac;
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure.AutofacModules;
|
||||||
using FluentValidation;
|
|
||||||
using MediatR;
|
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands;
|
|
||||||
using Ordering.API.Application.Behaviors;
|
|
||||||
using Ordering.API.Application.DomainEventHandlers.OrderStartedEvent;
|
|
||||||
using Ordering.API.Application.Validations;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Reflection;
|
|
||||||
|
|
||||||
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure.AutofacModules
|
|
||||||
{
|
|
||||||
public class MediatorModule : Autofac.Module
|
public class MediatorModule : Autofac.Module
|
||||||
{
|
{
|
||||||
protected override void Load(ContainerBuilder builder)
|
protected override void Load(ContainerBuilder builder)
|
||||||
@ -44,4 +34,3 @@ namespace Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure.Autof
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -1,10 +1,4 @@
|
|||||||
using Microsoft.EntityFrameworkCore;
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure.Factories
|
||||||
using Microsoft.EntityFrameworkCore.Design;
|
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.Infrastructure;
|
|
||||||
using Microsoft.Extensions.Configuration;
|
|
||||||
using System.IO;
|
|
||||||
|
|
||||||
namespace Ordering.API.Infrastructure.Factories
|
|
||||||
{
|
{
|
||||||
public class OrderingDbContextFactory : IDesignTimeDbContextFactory<OrderingContext>
|
public class OrderingDbContextFactory : IDesignTimeDbContextFactory<OrderingContext>
|
||||||
{
|
{
|
||||||
|
@ -1,11 +1,5 @@
|
|||||||
using Microsoft.AspNetCore.Authorization;
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure.Filters;
|
||||||
using Microsoft.OpenApi.Models;
|
|
||||||
using Swashbuckle.AspNetCore.SwaggerGen;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
|
|
||||||
namespace Ordering.API.Infrastructure.Filters
|
|
||||||
{
|
|
||||||
public class AuthorizeCheckOperationFilter : IOperationFilter
|
public class AuthorizeCheckOperationFilter : IOperationFilter
|
||||||
{
|
{
|
||||||
public void Apply(OpenApiOperation operation, OperationFilterContext context)
|
public void Apply(OpenApiOperation operation, OperationFilterContext context)
|
||||||
@ -33,4 +27,3 @@ namespace Ordering.API.Infrastructure.Filters
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
@ -1,14 +1,4 @@
|
|||||||
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure.Filters
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure.Filters;
|
||||||
{
|
|
||||||
using AspNetCore.Mvc;
|
|
||||||
using global::Ordering.Domain.Exceptions;
|
|
||||||
using Microsoft.AspNetCore.Hosting;
|
|
||||||
using Microsoft.AspNetCore.Http;
|
|
||||||
using Microsoft.AspNetCore.Mvc.Filters;
|
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure.ActionResults;
|
|
||||||
using Microsoft.Extensions.Hosting;
|
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
using System.Net;
|
|
||||||
|
|
||||||
public class HttpGlobalExceptionFilter : IExceptionFilter
|
public class HttpGlobalExceptionFilter : IExceptionFilter
|
||||||
{
|
{
|
||||||
@ -68,4 +58,3 @@
|
|||||||
public object DeveloperMessage { get; set; }
|
public object DeveloperMessage { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -1,22 +1,6 @@
|
|||||||
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure;
|
||||||
{
|
|
||||||
using global::Ordering.API.Extensions;
|
|
||||||
using Microsoft.AspNetCore.Hosting;
|
|
||||||
using Microsoft.EntityFrameworkCore;
|
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.BuyerAggregate;
|
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.Extensions.Logging;
|
|
||||||
using Microsoft.Extensions.Options;
|
|
||||||
using Ordering.Infrastructure;
|
|
||||||
using Polly;
|
|
||||||
using Polly.Retry;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Data.SqlClient;
|
|
||||||
using System.IO;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
public class OrderingContextSeed
|
public class OrderingContextSeed
|
||||||
{
|
{
|
||||||
@ -188,4 +172,3 @@
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure.Services
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure.Services;
|
||||||
{
|
|
||||||
public interface IIdentityService
|
public interface IIdentityService
|
||||||
{
|
{
|
||||||
string GetUserIdentity();
|
string GetUserIdentity();
|
||||||
|
|
||||||
string GetUserName();
|
string GetUserName();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -1,9 +1,5 @@
|
|||||||
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure.Services;
|
||||||
using Microsoft.AspNetCore.Http;
|
|
||||||
using System;
|
|
||||||
|
|
||||||
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure.Services
|
|
||||||
{
|
|
||||||
public class IdentityService : IIdentityService
|
public class IdentityService : IIdentityService
|
||||||
{
|
{
|
||||||
private IHttpContextAccessor _context;
|
private IHttpContextAccessor _context;
|
||||||
@ -23,4 +19,3 @@ namespace Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure.Servi
|
|||||||
return _context.HttpContext.User.Identity.Name;
|
return _context.HttpContext.User.Identity.Name;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
namespace Microsoft.eShopOnContainers.Services.Ordering.API
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API;
|
||||||
{
|
|
||||||
public class OrderingSettings
|
public class OrderingSettings
|
||||||
{
|
{
|
||||||
public bool UseCustomizationData { get; set; }
|
public bool UseCustomizationData { get; set; }
|
||||||
@ -12,4 +12,3 @@
|
|||||||
|
|
||||||
public int CheckUpdateTime { get; set; }
|
public int CheckUpdateTime { get; set; }
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -1,22 +1,4 @@
|
|||||||
using Microsoft.AspNetCore;
|
var configuration = GetConfiguration();
|
||||||
using Microsoft.AspNetCore.Hosting;
|
|
||||||
using Microsoft.AspNetCore.Server.Kestrel.Core;
|
|
||||||
using Microsoft.eShopOnContainers.BuildingBlocks.IntegrationEventLogEF;
|
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.API;
|
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure;
|
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.Infrastructure;
|
|
||||||
using Microsoft.Extensions.Configuration;
|
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
using Microsoft.Extensions.Options;
|
|
||||||
using Serilog;
|
|
||||||
using System;
|
|
||||||
using System.IO;
|
|
||||||
using System.Net;
|
|
||||||
using Azure.Identity;
|
|
||||||
using Azure.Core;
|
|
||||||
|
|
||||||
var configuration = GetConfiguration();
|
|
||||||
|
|
||||||
Log.Logger = CreateSerilogLogger(configuration);
|
Log.Logger = CreateSerilogLogger(configuration);
|
||||||
|
|
||||||
|
@ -1,42 +1,5 @@
|
|||||||
namespace Microsoft.eShopOnContainers.Services.Ordering.API
|
|
||||||
{
|
namespace Microsoft.eShopOnContainers.Services.Ordering.API;
|
||||||
using AspNetCore.Http;
|
|
||||||
using Autofac;
|
|
||||||
using Autofac.Extensions.DependencyInjection;
|
|
||||||
using global::Ordering.API.Application.IntegrationEvents;
|
|
||||||
using global::Ordering.API.Application.IntegrationEvents.Events;
|
|
||||||
using global::Ordering.API.Infrastructure.Filters;
|
|
||||||
using GrpcOrdering;
|
|
||||||
using HealthChecks.UI.Client;
|
|
||||||
using Infrastructure.AutofacModules;
|
|
||||||
using Infrastructure.Filters;
|
|
||||||
using Infrastructure.Services;
|
|
||||||
using Microsoft.AspNetCore.Builder;
|
|
||||||
using Microsoft.AspNetCore.Diagnostics.HealthChecks;
|
|
||||||
using Microsoft.AspNetCore.Hosting;
|
|
||||||
using Microsoft.AspNetCore.Mvc;
|
|
||||||
using Microsoft.Azure.ServiceBus;
|
|
||||||
using Microsoft.EntityFrameworkCore;
|
|
||||||
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus;
|
|
||||||
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Abstractions;
|
|
||||||
using Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ;
|
|
||||||
using Microsoft.eShopOnContainers.BuildingBlocks.EventBusServiceBus;
|
|
||||||
using Microsoft.eShopOnContainers.BuildingBlocks.IntegrationEventLogEF;
|
|
||||||
using Microsoft.eShopOnContainers.BuildingBlocks.IntegrationEventLogEF.Services;
|
|
||||||
using Microsoft.eShopOnContainers.Services.Ordering.API.Controllers;
|
|
||||||
using Microsoft.Extensions.Configuration;
|
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
|
||||||
using Microsoft.Extensions.Diagnostics.HealthChecks;
|
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
using Microsoft.OpenApi.Models;
|
|
||||||
using Ordering.Infrastructure;
|
|
||||||
using RabbitMQ.Client;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Data.Common;
|
|
||||||
using System.IdentityModel.Tokens.Jwt;
|
|
||||||
using System.IO;
|
|
||||||
using System.Reflection;
|
|
||||||
|
|
||||||
public class Startup
|
public class Startup
|
||||||
{
|
{
|
||||||
@ -426,4 +389,3 @@
|
|||||||
return services;
|
return services;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user