mirror of
https://github.com/meysamhadeli/booking-microservices.git
synced 2026-04-27 16:10:52 +08:00
refactor: Refactor domain models
This commit is contained in:
parent
c3697e4d04
commit
af4d03441d
@ -3,7 +3,7 @@ using BuildingBlocks.Core.Model;
|
|||||||
namespace Flight.Aircrafts.Models;
|
namespace Flight.Aircrafts.Models;
|
||||||
|
|
||||||
using Features.CreatingAircraft.V1;
|
using Features.CreatingAircraft.V1;
|
||||||
using Flight.Aircrafts.ValueObjects;
|
using ValueObjects;
|
||||||
|
|
||||||
public record Aircraft : Aggregate<AircraftId>
|
public record Aircraft : Aggregate<AircraftId>
|
||||||
{
|
{
|
||||||
|
|||||||
@ -3,7 +3,7 @@ using BuildingBlocks.Core.Model;
|
|||||||
namespace Flight.Airports.Models;
|
namespace Flight.Airports.Models;
|
||||||
|
|
||||||
using Features.CreatingAirport.V1;
|
using Features.CreatingAirport.V1;
|
||||||
using Flight.Airports.ValueObjects;
|
using ValueObjects;
|
||||||
|
|
||||||
public record Airport : Aggregate<AirportId>
|
public record Airport : Aggregate<AirportId>
|
||||||
{
|
{
|
||||||
@ -22,10 +22,10 @@ public record Airport : Aggregate<AirportId>
|
|||||||
};
|
};
|
||||||
|
|
||||||
var @event = new AirportCreatedDomainEvent(
|
var @event = new AirportCreatedDomainEvent(
|
||||||
airport.Id.Value,
|
airport.Id,
|
||||||
airport.Name.Value,
|
airport.Name,
|
||||||
airport.Address.Value,
|
airport.Address,
|
||||||
airport.Code.Value,
|
airport.Code,
|
||||||
isDeleted);
|
isDeleted);
|
||||||
|
|
||||||
airport.AddDomainEvent(@event);
|
airport.AddDomainEvent(@event);
|
||||||
|
|||||||
@ -118,7 +118,7 @@ internal class UpdateFlightHandler : ICommandHandler<UpdateFlight, UpdateFlightR
|
|||||||
ArriveDate.Of(request.ArriveDate), AirportId.Of(request.ArriveAirportId), DurationMinutes.Of(request.DurationMinutes), FlightDate.Of(request.FlightDate), request.Status,
|
ArriveDate.Of(request.ArriveDate), AirportId.Of(request.ArriveAirportId), DurationMinutes.Of(request.DurationMinutes), FlightDate.Of(request.FlightDate), request.Status,
|
||||||
Price.Of(request.Price), request.IsDeleted);
|
Price.Of(request.Price), request.IsDeleted);
|
||||||
|
|
||||||
var updateFlight = (_flightDbContext.Flights.Update(flight)).Entity;
|
var updateFlight = _flightDbContext.Flights.Update(flight).Entity;
|
||||||
|
|
||||||
return new UpdateFlightResult(updateFlight.Id);
|
return new UpdateFlightResult(updateFlight.Id);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7,7 +7,7 @@ using Airports.ValueObjects;
|
|||||||
using Features.CreatingFlight.V1;
|
using Features.CreatingFlight.V1;
|
||||||
using Features.DeletingFlight.V1;
|
using Features.DeletingFlight.V1;
|
||||||
using Features.UpdatingFlight.V1;
|
using Features.UpdatingFlight.V1;
|
||||||
using global::Flight.Flights.ValueObjects;
|
using ValueObjects;
|
||||||
|
|
||||||
public record Flight : Aggregate<FlightId>
|
public record Flight : Aggregate<FlightId>
|
||||||
{
|
{
|
||||||
@ -43,10 +43,10 @@ public record Flight : Aggregate<FlightId>
|
|||||||
IsDeleted = isDeleted,
|
IsDeleted = isDeleted,
|
||||||
};
|
};
|
||||||
|
|
||||||
var @event = new FlightCreatedDomainEvent(flight.Id.Value, flight.FlightNumber.Value, flight.AircraftId.Value,
|
var @event = new FlightCreatedDomainEvent(flight.Id, flight.FlightNumber, flight.AircraftId,
|
||||||
flight.DepartureDate.Value, flight.DepartureAirportId.Value,
|
flight.DepartureDate, flight.DepartureAirportId,
|
||||||
flight.ArriveDate.Value, flight.ArriveAirportId.Value, flight.DurationMinutes.Value, flight.FlightDate.Value, flight.Status,
|
flight.ArriveDate, flight.ArriveAirportId, flight.DurationMinutes, flight.FlightDate, flight.Status,
|
||||||
flight.Price.Value, flight.IsDeleted);
|
flight.Price, flight.IsDeleted);
|
||||||
|
|
||||||
flight.AddDomainEvent(@event);
|
flight.AddDomainEvent(@event);
|
||||||
|
|
||||||
@ -59,20 +59,20 @@ public record Flight : Aggregate<FlightId>
|
|||||||
AirportId arriveAirportId, DurationMinutes durationMinutes, FlightDate flightDate, Enums.FlightStatus status,
|
AirportId arriveAirportId, DurationMinutes durationMinutes, FlightDate flightDate, Enums.FlightStatus status,
|
||||||
Price price, bool isDeleted = false)
|
Price price, bool isDeleted = false)
|
||||||
{
|
{
|
||||||
FlightNumber = flightNumber;
|
this.FlightNumber = flightNumber;
|
||||||
AircraftId = aircraftId;
|
this.AircraftId = aircraftId;
|
||||||
DepartureAirportId = departureAirportId;
|
this.DepartureAirportId = departureAirportId;
|
||||||
DepartureDate = departureDate;
|
this.DepartureDate = departureDate;
|
||||||
ArriveDate = arriveDate;
|
this.ArriveDate = arriveDate;
|
||||||
ArriveAirportId = arriveAirportId;
|
this.ArriveAirportId = arriveAirportId;
|
||||||
DurationMinutes = durationMinutes;
|
this.DurationMinutes = durationMinutes;
|
||||||
FlightDate = flightDate;
|
this.FlightDate = flightDate;
|
||||||
Status = status;
|
this.Status = status;
|
||||||
Price = price;
|
this.Price = price;
|
||||||
IsDeleted = isDeleted;
|
this.IsDeleted = isDeleted;
|
||||||
|
|
||||||
var @event = new FlightUpdatedDomainEvent(id.Value, flightNumber.Value, aircraftId.Value, departureDate.Value, departureAirportId.Value,
|
var @event = new FlightUpdatedDomainEvent(id, flightNumber, aircraftId, departureDate, departureAirportId,
|
||||||
arriveDate.Value, arriveAirportId.Value, durationMinutes.Value, flightDate.Value, status, price.Value, isDeleted);
|
arriveDate, arriveAirportId, durationMinutes, flightDate, status, price, isDeleted);
|
||||||
|
|
||||||
AddDomainEvent(@event);
|
AddDomainEvent(@event);
|
||||||
}
|
}
|
||||||
@ -94,8 +94,8 @@ public record Flight : Aggregate<FlightId>
|
|||||||
Price = price;
|
Price = price;
|
||||||
IsDeleted = isDeleted;
|
IsDeleted = isDeleted;
|
||||||
|
|
||||||
var @event = new FlightDeletedDomainEvent(id.Value, flightNumber.Value, aircraftId.Value, departureDate.Value, departureAirportId.Value,
|
var @event = new FlightDeletedDomainEvent(id, flightNumber, aircraftId, departureDate, departureAirportId,
|
||||||
arriveDate.Value, arriveAirportId.Value, durationMinutes.Value, flightDate.Value, status, price.Value, isDeleted);
|
arriveDate, arriveAirportId, durationMinutes, flightDate, status, price, isDeleted);
|
||||||
|
|
||||||
AddDomainEvent(@event);
|
AddDomainEvent(@event);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -93,9 +93,9 @@ internal class ReserveSeatCommandHandler : IRequestHandler<ReserveSeat, ReserveS
|
|||||||
throw new SeatNumberIncorrectException();
|
throw new SeatNumberIncorrectException();
|
||||||
}
|
}
|
||||||
|
|
||||||
var reserveSeat = await seat.ReserveSeat(seat);
|
seat.ReserveSeat();
|
||||||
|
|
||||||
var updatedSeat = (_flightDbContext.Seats.Update(reserveSeat)).Entity;
|
var updatedSeat = _flightDbContext.Seats.Update(seat).Entity;
|
||||||
|
|
||||||
return new ReserveSeatResult(updatedSeat.Id);
|
return new ReserveSeatResult(updatedSeat.Id);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,5 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Threading.Tasks;
|
|
||||||
using BuildingBlocks.Core.Model;
|
using BuildingBlocks.Core.Model;
|
||||||
|
|
||||||
namespace Flight.Seats.Models;
|
namespace Flight.Seats.Models;
|
||||||
@ -7,7 +6,7 @@ namespace Flight.Seats.Models;
|
|||||||
using Features.CreatingSeat.V1;
|
using Features.CreatingSeat.V1;
|
||||||
using Features.ReservingSeat.Commands.V1;
|
using Features.ReservingSeat.Commands.V1;
|
||||||
using Flight.Flights.ValueObjects;
|
using Flight.Flights.ValueObjects;
|
||||||
using Flight.Seats.ValueObjects;
|
using ValueObjects;
|
||||||
|
|
||||||
public record Seat : Aggregate<SeatId>
|
public record Seat : Aggregate<SeatId>
|
||||||
{
|
{
|
||||||
@ -16,7 +15,8 @@ public record Seat : Aggregate<SeatId>
|
|||||||
public Enums.SeatClass Class { get; private set; }
|
public Enums.SeatClass Class { get; private set; }
|
||||||
public FlightId FlightId { get; private set; } = default!;
|
public FlightId FlightId { get; private set; } = default!;
|
||||||
|
|
||||||
public static Seat Create(SeatId id, SeatNumber seatNumber, Enums.SeatType type, Enums.SeatClass @class, FlightId flightId,
|
public static Seat Create(SeatId id, SeatNumber seatNumber, Enums.SeatType type, Enums.SeatClass @class,
|
||||||
|
FlightId flightId,
|
||||||
bool isDeleted = false)
|
bool isDeleted = false)
|
||||||
{
|
{
|
||||||
var seat = new Seat()
|
var seat = new Seat()
|
||||||
@ -30,11 +30,11 @@ public record Seat : Aggregate<SeatId>
|
|||||||
};
|
};
|
||||||
|
|
||||||
var @event = new SeatCreatedDomainEvent(
|
var @event = new SeatCreatedDomainEvent(
|
||||||
seat.Id.Value,
|
seat.Id,
|
||||||
seat.SeatNumber.Value,
|
seat.SeatNumber,
|
||||||
seat.Type,
|
seat.Type,
|
||||||
seat.Class,
|
seat.Class,
|
||||||
seat.FlightId.Value,
|
seat.FlightId,
|
||||||
isDeleted);
|
isDeleted);
|
||||||
|
|
||||||
seat.AddDomainEvent(@event);
|
seat.AddDomainEvent(@event);
|
||||||
@ -42,21 +42,19 @@ public record Seat : Aggregate<SeatId>
|
|||||||
return seat;
|
return seat;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Task<Seat> ReserveSeat(Seat seat)
|
public void ReserveSeat()
|
||||||
{
|
{
|
||||||
seat.IsDeleted = true;
|
this.IsDeleted = true;
|
||||||
seat.LastModified = DateTime.Now;
|
this.LastModified = DateTime.Now;
|
||||||
|
|
||||||
var @event = new SeatReservedDomainEvent(
|
var @event = new SeatReservedDomainEvent(
|
||||||
seat.Id.Value,
|
this.Id,
|
||||||
seat.SeatNumber.Value,
|
this.SeatNumber,
|
||||||
seat.Type,
|
this.Type,
|
||||||
seat.Class,
|
this.Class,
|
||||||
seat.FlightId.Value,
|
this.FlightId,
|
||||||
seat.IsDeleted);
|
this.IsDeleted);
|
||||||
|
|
||||||
seat.AddDomainEvent(@event);
|
this.AddDomainEvent(@event);
|
||||||
|
|
||||||
return Task.FromResult(this);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,7 +3,7 @@ using BuildingBlocks.Core.Model;
|
|||||||
namespace Passenger.Passengers.Models;
|
namespace Passenger.Passengers.Models;
|
||||||
|
|
||||||
using Features.CompletingRegisterPassenger.V1;
|
using Features.CompletingRegisterPassenger.V1;
|
||||||
using global::Passenger.Passengers.ValueObjects;
|
using ValueObjects;
|
||||||
using Identity.Consumers.RegisteringNewUser.V1;
|
using Identity.Consumers.RegisteringNewUser.V1;
|
||||||
|
|
||||||
public record Passenger : Aggregate<PassengerId>
|
public record Passenger : Aggregate<PassengerId>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user