private static BaseCustomerDto GetCustomer(Domain.Customer.Customer customer) { var address = customer.Address; var addressDto = new CustomerAddressDto { Street = address.Street, City = address.City, ZipCode = address.ZipCode, Number = address.Number }; return(customer switch { MrGreenCustomer mrGreenCustomer => new MrGreenCustomerDto { Id = mrGreenCustomer.Id, FirstName = mrGreenCustomer.FirstName, LastName = mrGreenCustomer.LastName, PersonalNumber = mrGreenCustomer.PersonalNumber, Address = addressDto }, RedBetCustomer redBetCustomer => new RedBetCustomerDto { Id = redBetCustomer.Id, FirstName = redBetCustomer.FirstName, LastName = redBetCustomer.LastName, FavoriteFootballTeam = redBetCustomer.FavoriteFootballClub, Address = addressDto }, _ => throw new InvalidOperationException("Customer Type is not supported") });
public async Task <Guid> Handle(RegisterMrGreenCustomerCommand request, CancellationToken cancellationToken) { var customer = new MrGreenCustomer(request.FirstName, request.LastName, request.AddressStreet, request.AddressNumber, request.AddressZipCode, request.PersonalNumber); await _customerRepository.AddAsync(customer); return(customer.Id); }
public async Task <Unit> Handle(RegisterMrGreenCustomerCommand request, CancellationToken cancellationToken) { // Any other logic for MrGreen Customer var address = Address.Create(request.Street, request.Number, request.ZipCode, request.City); var customer = new MrGreenCustomer( request.FirstName, request.LastName, (PersonalNumber)request.PersonalNumber, address); await _customerRepository.Register(customer); return(Unit.Value); }
public void Ctor_RequiredParametersProvided_ObjectCreated() { const string firstName = "firstName"; const string lastName = "lastName"; const string addressStreet = "addressStreet"; const string addressNumber = "addressNumber"; const string addressZipCode = "addressZipCode"; const string personalNumber = "12345-123"; MrGreenCustomer customer = new MrGreenCustomer(firstName, lastName, addressStreet, addressNumber, addressZipCode, personalNumber); Assert.NotNull(customer.Id); Assert.AreEqual(firstName, customer.FirstName); Assert.AreEqual(lastName, customer.LastName); Assert.AreEqual(addressStreet, customer.Address.Street); Assert.AreEqual(addressNumber, customer.Address.Number); Assert.AreEqual(addressZipCode, customer.Address.ZipCode); Assert.AreEqual(personalNumber, customer.PersonalNumber); }