mirror of
https://github.com/meysamhadeli/booking-microservices.git
synced 2026-04-14 04:28:38 +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;
|
||||
|
||||
using Features.CreatingAircraft.V1;
|
||||
using Flight.Aircrafts.ValueObjects;
|
||||
using ValueObjects;
|
||||
|
||||
public record Aircraft : Aggregate<AircraftId>
|
||||
{
|
||||
|
||||
@ -3,7 +3,7 @@ using BuildingBlocks.Core.Model;
|
||||
namespace Flight.Airports.Models;
|
||||
|
||||
using Features.CreatingAirport.V1;
|
||||
using Flight.Airports.ValueObjects;
|
||||
using ValueObjects;
|
||||
|
||||
public record Airport : Aggregate<AirportId>
|
||||
{
|
||||
@ -22,10 +22,10 @@ public record Airport : Aggregate<AirportId>
|
||||
};
|
||||
|
||||
var @event = new AirportCreatedDomainEvent(
|
||||
airport.Id.Value,
|
||||
airport.Name.Value,
|
||||
airport.Address.Value,
|
||||
airport.Code.Value,
|
||||
airport.Id,
|
||||
airport.Name,
|
||||
airport.Address,
|
||||
airport.Code,
|
||||
isDeleted);
|
||||
|
||||
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,
|
||||
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);
|
||||
}
|
||||
|
||||
@ -7,7 +7,7 @@ using Airports.ValueObjects;
|
||||
using Features.CreatingFlight.V1;
|
||||
using Features.DeletingFlight.V1;
|
||||
using Features.UpdatingFlight.V1;
|
||||
using global::Flight.Flights.ValueObjects;
|
||||
using ValueObjects;
|
||||
|
||||
public record Flight : Aggregate<FlightId>
|
||||
{
|
||||
@ -43,10 +43,10 @@ public record Flight : Aggregate<FlightId>
|
||||
IsDeleted = isDeleted,
|
||||
};
|
||||
|
||||
var @event = new FlightCreatedDomainEvent(flight.Id.Value, flight.FlightNumber.Value, flight.AircraftId.Value,
|
||||
flight.DepartureDate.Value, flight.DepartureAirportId.Value,
|
||||
flight.ArriveDate.Value, flight.ArriveAirportId.Value, flight.DurationMinutes.Value, flight.FlightDate.Value, flight.Status,
|
||||
flight.Price.Value, flight.IsDeleted);
|
||||
var @event = new FlightCreatedDomainEvent(flight.Id, flight.FlightNumber, flight.AircraftId,
|
||||
flight.DepartureDate, flight.DepartureAirportId,
|
||||
flight.ArriveDate, flight.ArriveAirportId, flight.DurationMinutes, flight.FlightDate, flight.Status,
|
||||
flight.Price, flight.IsDeleted);
|
||||
|
||||
flight.AddDomainEvent(@event);
|
||||
|
||||
@ -59,20 +59,20 @@ public record Flight : Aggregate<FlightId>
|
||||
AirportId arriveAirportId, DurationMinutes durationMinutes, FlightDate flightDate, Enums.FlightStatus status,
|
||||
Price price, bool isDeleted = false)
|
||||
{
|
||||
FlightNumber = flightNumber;
|
||||
AircraftId = aircraftId;
|
||||
DepartureAirportId = departureAirportId;
|
||||
DepartureDate = departureDate;
|
||||
ArriveDate = arriveDate;
|
||||
ArriveAirportId = arriveAirportId;
|
||||
DurationMinutes = durationMinutes;
|
||||
FlightDate = flightDate;
|
||||
Status = status;
|
||||
Price = price;
|
||||
IsDeleted = isDeleted;
|
||||
this.FlightNumber = flightNumber;
|
||||
this.AircraftId = aircraftId;
|
||||
this.DepartureAirportId = departureAirportId;
|
||||
this.DepartureDate = departureDate;
|
||||
this.ArriveDate = arriveDate;
|
||||
this.ArriveAirportId = arriveAirportId;
|
||||
this.DurationMinutes = durationMinutes;
|
||||
this.FlightDate = flightDate;
|
||||
this.Status = status;
|
||||
this.Price = price;
|
||||
this.IsDeleted = isDeleted;
|
||||
|
||||
var @event = new FlightUpdatedDomainEvent(id.Value, flightNumber.Value, aircraftId.Value, departureDate.Value, departureAirportId.Value,
|
||||
arriveDate.Value, arriveAirportId.Value, durationMinutes.Value, flightDate.Value, status, price.Value, isDeleted);
|
||||
var @event = new FlightUpdatedDomainEvent(id, flightNumber, aircraftId, departureDate, departureAirportId,
|
||||
arriveDate, arriveAirportId, durationMinutes, flightDate, status, price, isDeleted);
|
||||
|
||||
AddDomainEvent(@event);
|
||||
}
|
||||
@ -94,8 +94,8 @@ public record Flight : Aggregate<FlightId>
|
||||
Price = price;
|
||||
IsDeleted = isDeleted;
|
||||
|
||||
var @event = new FlightDeletedDomainEvent(id.Value, flightNumber.Value, aircraftId.Value, departureDate.Value, departureAirportId.Value,
|
||||
arriveDate.Value, arriveAirportId.Value, durationMinutes.Value, flightDate.Value, status, price.Value, isDeleted);
|
||||
var @event = new FlightDeletedDomainEvent(id, flightNumber, aircraftId, departureDate, departureAirportId,
|
||||
arriveDate, arriveAirportId, durationMinutes, flightDate, status, price, isDeleted);
|
||||
|
||||
AddDomainEvent(@event);
|
||||
}
|
||||
|
||||
@ -93,9 +93,9 @@ internal class ReserveSeatCommandHandler : IRequestHandler<ReserveSeat, ReserveS
|
||||
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);
|
||||
}
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using BuildingBlocks.Core.Model;
|
||||
|
||||
namespace Flight.Seats.Models;
|
||||
@ -7,7 +6,7 @@ namespace Flight.Seats.Models;
|
||||
using Features.CreatingSeat.V1;
|
||||
using Features.ReservingSeat.Commands.V1;
|
||||
using Flight.Flights.ValueObjects;
|
||||
using Flight.Seats.ValueObjects;
|
||||
using ValueObjects;
|
||||
|
||||
public record Seat : Aggregate<SeatId>
|
||||
{
|
||||
@ -16,7 +15,8 @@ public record Seat : Aggregate<SeatId>
|
||||
public Enums.SeatClass Class { get; private set; }
|
||||
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)
|
||||
{
|
||||
var seat = new Seat()
|
||||
@ -30,11 +30,11 @@ public record Seat : Aggregate<SeatId>
|
||||
};
|
||||
|
||||
var @event = new SeatCreatedDomainEvent(
|
||||
seat.Id.Value,
|
||||
seat.SeatNumber.Value,
|
||||
seat.Id,
|
||||
seat.SeatNumber,
|
||||
seat.Type,
|
||||
seat.Class,
|
||||
seat.FlightId.Value,
|
||||
seat.FlightId,
|
||||
isDeleted);
|
||||
|
||||
seat.AddDomainEvent(@event);
|
||||
@ -42,21 +42,19 @@ public record Seat : Aggregate<SeatId>
|
||||
return seat;
|
||||
}
|
||||
|
||||
public Task<Seat> ReserveSeat(Seat seat)
|
||||
public void ReserveSeat()
|
||||
{
|
||||
seat.IsDeleted = true;
|
||||
seat.LastModified = DateTime.Now;
|
||||
this.IsDeleted = true;
|
||||
this.LastModified = DateTime.Now;
|
||||
|
||||
var @event = new SeatReservedDomainEvent(
|
||||
seat.Id.Value,
|
||||
seat.SeatNumber.Value,
|
||||
seat.Type,
|
||||
seat.Class,
|
||||
seat.FlightId.Value,
|
||||
seat.IsDeleted);
|
||||
this.Id,
|
||||
this.SeatNumber,
|
||||
this.Type,
|
||||
this.Class,
|
||||
this.FlightId,
|
||||
this.IsDeleted);
|
||||
|
||||
seat.AddDomainEvent(@event);
|
||||
|
||||
return Task.FromResult(this);
|
||||
this.AddDomainEvent(@event);
|
||||
}
|
||||
}
|
||||
|
||||
@ -3,7 +3,7 @@ using BuildingBlocks.Core.Model;
|
||||
namespace Passenger.Passengers.Models;
|
||||
|
||||
using Features.CompletingRegisterPassenger.V1;
|
||||
using global::Passenger.Passengers.ValueObjects;
|
||||
using ValueObjects;
|
||||
using Identity.Consumers.RegisteringNewUser.V1;
|
||||
|
||||
public record Passenger : Aggregate<PassengerId>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user