Beispiel #1
0
        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);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
        }