mirror of
https://github.com/meysamhadeli/booking-microservices.git
synced 2026-04-28 16:52:47 +08:00
fix: Fix bug multiple instance tracking in CompleteRegisterPassengerCommandHandler in update operation
This commit is contained in:
parent
17269df649
commit
c3697e4d04
@ -96,19 +96,18 @@ internal class CompleteRegisterPassengerCommandHandler : ICommandHandler<Complet
|
|||||||
{
|
{
|
||||||
Guard.Against.Null(request, nameof(request));
|
Guard.Against.Null(request, nameof(request));
|
||||||
|
|
||||||
var passenger = await _passengerDbContext.Passengers.AsNoTracking().SingleOrDefaultAsync(
|
var passenger = await _passengerDbContext.Passengers.SingleOrDefaultAsync(
|
||||||
x => x.PassportNumber.Value == request.PassportNumber, cancellationToken);
|
x => x.PassportNumber.Value == request.PassportNumber, cancellationToken);
|
||||||
|
|
||||||
|
|
||||||
if (passenger is null)
|
if (passenger is null)
|
||||||
{
|
{
|
||||||
throw new PassengerNotExist();
|
throw new PassengerNotExist();
|
||||||
}
|
}
|
||||||
|
|
||||||
var passengerEntity = passenger.CompleteRegistrationPassenger(passenger.Id, passenger.Name,
|
passenger.CompleteRegistrationPassenger(passenger.Id, passenger.Name,
|
||||||
passenger.PassportNumber, request.PassengerType, Age.Of(request.Age));
|
passenger.PassportNumber, request.PassengerType, Age.Of(request.Age));
|
||||||
|
|
||||||
var updatePassenger = _passengerDbContext.Passengers.Update(passengerEntity).Entity;
|
var updatePassenger = _passengerDbContext.Passengers.Update(passenger).Entity;
|
||||||
|
|
||||||
var passengerDto = _mapper.Map<PassengerDto>(updatePassenger);
|
var passengerDto = _mapper.Map<PassengerDto>(updatePassenger);
|
||||||
|
|
||||||
|
|||||||
@ -13,24 +13,21 @@ public record Passenger : Aggregate<PassengerId>
|
|||||||
public Enums.PassengerType PassengerType { get; private set; }
|
public Enums.PassengerType PassengerType { get; private set; }
|
||||||
public Age? Age { get; private set; }
|
public Age? Age { get; private set; }
|
||||||
|
|
||||||
public Passenger CompleteRegistrationPassenger(PassengerId id, Name name, PassportNumber passportNumber, Enums.PassengerType passengerType, Age age, bool isDeleted = false)
|
public void CompleteRegistrationPassenger(PassengerId id, Name name, PassportNumber passportNumber,
|
||||||
|
Enums.PassengerType passengerType, Age age, bool isDeleted = false)
|
||||||
{
|
{
|
||||||
var passenger = new Passenger
|
this.Id = id;
|
||||||
{
|
this.Name = name;
|
||||||
Id = id,
|
this.PassportNumber = passportNumber;
|
||||||
Name = name,
|
this.PassengerType = passengerType;
|
||||||
PassportNumber = passportNumber,
|
this.Age = age;
|
||||||
PassengerType = passengerType,
|
this.IsDeleted = isDeleted;
|
||||||
Age = age,
|
|
||||||
IsDeleted = isDeleted
|
|
||||||
};
|
|
||||||
|
|
||||||
var @event = new PassengerRegistrationCompletedDomainEvent(passenger.Id, passenger.Name, passenger.PassportNumber,
|
var @event = new PassengerRegistrationCompletedDomainEvent(this.Id, this.Name,
|
||||||
passenger.PassengerType, passenger.Age, passenger.IsDeleted);
|
this.PassportNumber,
|
||||||
|
this.PassengerType, this.Age, this.IsDeleted);
|
||||||
|
|
||||||
passenger.AddDomainEvent(@event);
|
this.AddDomainEvent(@event);
|
||||||
|
|
||||||
return passenger;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -38,7 +35,8 @@ public record Passenger : Aggregate<PassengerId>
|
|||||||
{
|
{
|
||||||
var passenger = new Passenger { Id = id, Name = name, PassportNumber = passportNumber, IsDeleted = isDeleted };
|
var passenger = new Passenger { Id = id, Name = name, PassportNumber = passportNumber, IsDeleted = isDeleted };
|
||||||
|
|
||||||
var @event = new PassengerCreatedDomainEvent(passenger.Id, passenger.Name, passenger.PassportNumber, passenger.IsDeleted);
|
var @event = new PassengerCreatedDomainEvent(passenger.Id, passenger.Name, passenger.PassportNumber,
|
||||||
|
passenger.IsDeleted);
|
||||||
|
|
||||||
passenger.AddDomainEvent(@event);
|
passenger.AddDomainEvent(@event);
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user