fix valueobject

This commit is contained in:
amir.gholami 2023-06-01 20:43:00 +03:30
parent 78f4a764f7
commit d3a2023629
9 changed files with 18 additions and 21 deletions

View File

@ -1,14 +1,13 @@
namespace Flight.Aircrafts.Models;
using System;
using Flight.Aircrafts.Models.ValueObjects;
public class AircraftReadModel
{
public required Guid Id { get; init; }
public required AircraftId AircraftId { get; init; }
public required Name Name { get; init; }
public required Model Model { get; init; }
public required ManufacturingYear ManufacturingYear { get; init; }
public required Guid AircraftId { get; init; }
public required string Name { get; init; }
public required string Model { get; init; }
public required int ManufacturingYear { get; init; }
public required bool IsDeleted { get; init; }
}

View File

@ -1,9 +1,6 @@
using System;
namespace Flight.Flights.Dtos;
using Aircrafts.Models.ValueObjects;
public record FlightDto(Guid Id, string FlightNumber, AircraftId AircraftId, Guid DepartureAirportId,
public record FlightDto(Guid Id, string FlightNumber, Guid AircraftId, Guid DepartureAirportId,
DateTime DepartureDate, DateTime ArriveDate, Guid ArriveAirportId, decimal DurationMinutes, DateTime FlightDate,
Enums.FlightStatus Status, decimal Price);

View File

@ -3,7 +3,6 @@ namespace Flight.Flights.Features.CreatingFlight.V1;
using System;
using System.Threading;
using System.Threading.Tasks;
using Aircrafts.Models.ValueObjects;
using Ardalis.GuardClauses;
using BuildingBlocks.Core.CQRS;
using BuildingBlocks.Core.Event;
@ -15,7 +14,7 @@ using Models;
using MongoDB.Driver;
using MongoDB.Driver.Linq;
public record CreateFlightMongo(Guid Id, string FlightNumber, AircraftId AircraftId, DateTime DepartureDate,
public record CreateFlightMongo(Guid Id, string FlightNumber, Guid AircraftId, DateTime DepartureDate,
Guid DepartureAirportId, DateTime ArriveDate, Guid ArriveAirportId, decimal DurationMinutes, DateTime FlightDate,
Enums.FlightStatus Status, decimal Price, bool IsDeleted = false) : InternalCommand;

View File

@ -1,14 +1,13 @@
namespace Flight.Flights.Models;
using System;
using Aircrafts.Models.ValueObjects;
public class FlightReadModel
{
public required Guid Id { get; init; }
public required Guid FlightId { get; init; }
public required string FlightNumber { get; init; }
public required AircraftId AircraftId { get; init; }
public required Guid AircraftId { get; init; }
public required DateTime DepartureDate { get; init; }
public required Guid DepartureAirportId { get; init; }
public required DateTime ArriveDate { get; init; }

View File

@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;
using Flight.Flights.Dtos;
using MapsterMapper;
@ -25,7 +25,7 @@ public class FlightMappingTests
yield return new object[]
{
// these types will instantiate with reflection in the future
typeof(global::Flight.Flights.Models.Flight), typeof(FlightDto)
typeof(global::Flight.Flights.Models.FlightReadModel), typeof(FlightDto)
};
}
}

View File

@ -38,7 +38,7 @@ public class RegisterNewUserHandler : IConsumer<UserCreated>
_logger.LogInformation($"consumer for {nameof(UserCreated).Underscore()} in {_options.Name}");
var passengerExist =
await _passengerDbContext.Passengers.AnyAsync(x => x.PassportNumber == PassportNumber.Of(context.Message.PassportNumber));
await _passengerDbContext.Passengers.AnyAsync(x => x.PassportNumber.Value == PassportNumber.Of(context.Message.PassportNumber).Value);
if (passengerExist)
{

View File

@ -97,7 +97,7 @@ internal class CompleteRegisterPassengerCommandHandler : ICommandHandler<Complet
Guard.Against.Null(request, nameof(request));
var passenger = await _passengerDbContext.Passengers.AsNoTracking().SingleOrDefaultAsync(
x => x.PassportNumber.Value.Equals(PassportNumber.Of(request.PassportNumber)), cancellationToken);
x => x.PassportNumber.Value.Equals(PassportNumber.Of(request.PassportNumber).Value), cancellationToken);
if (passenger is null)
@ -108,9 +108,9 @@ internal class CompleteRegisterPassengerCommandHandler : ICommandHandler<Complet
var passengerEntity = passenger.CompleteRegistrationPassenger(passenger.Id, passenger.Name,
passenger.PassportNumber, request.PassengerType, Age.Of(request.Age));
var updatePassenger = _passengerDbContext.Passengers.Update(passengerEntity);
var updatePassenger = _passengerDbContext.Passengers.Update(passengerEntity)?.Entity;
var passengerDto = _mapper.Map<PassengerDto>(updatePassenger.Entity);
var passengerDto = _mapper.Map<PassengerDto>(updatePassenger);
return new CompleteRegisterPassengerResult(passengerDto);
}

View File

@ -21,5 +21,8 @@ public class PassengerMappings : IRegister
config.NewConfig<PassengerReadModel, PassengerDto>()
.ConstructUsing(x => new PassengerDto(x.PassengerId, x.Name, x.PassportNumber, x.PassengerType, x.Age));
config.NewConfig<Passenger, PassengerDto>()
.ConstructUsing(x => new PassengerDto(x.Id.Value, x.Name.Value, x.PassportNumber.Value, x.PassengerType, x.Age.Value));
}
}

View File

@ -23,8 +23,8 @@ public class CompleteRegisterPassengerTests : PassengerIntegrationTestBase
var userCreated = new FakeUserCreated().Generate();
await Fixture.Publish(userCreated);
await Fixture.WaitForPublishing<UserCreated>();
await Fixture.WaitForConsuming<UserCreated>();
(await Fixture.WaitForPublishing<UserCreated>()).Should().Be(true);
(await Fixture.WaitForConsuming<UserCreated>()).Should().Be(true);
var command = new FakeCompleteRegisterPassengerCommand(userCreated.PassportNumber).Generate();