public CreateCustomerResponse CreateCustomer(CreateCustomerRequest request)
        {
            CreateCustomerResponse response = new CreateCustomerResponse();

            var email = new EmailAddress(request.Email);
            var name = new Name(request.FirstName, request.SecondName);

            var customer = new Customer(request.CustomerIdentityToken, email, name);

            ThrowExceptionIfCustomerIsInvalid(customer);

            _customerRepository.Add(customer);
            _uow.Commit();

            response.Customer = customer.ConvertToCustomerDetailView();

            return response;
        }
 public void Then_an_InvalidEmailAddressException_will_be_thrown()
 {
     _email = new EmailAddress("scott@");
 }
        public override void When()
        {
            _email = new EmailAddress("*****@*****.**");

            sut.ChangeEmailTo(_email);
        }
        public ModifyCustomerResponse ModifyCustomer(ModifyCustomerRequest request)
        {
            ModifyCustomerResponse response = new ModifyCustomerResponse();

            Customer customer = _customerRepository.FindBy(request.CustomerIdentityToken);

            var email = new EmailAddress(request.Email);
            var name = new Name(request.FirstName, request.SecondName);

            customer.ChangeEmailTo(email);
            customer.ChangeNameTo(name);

            ThrowExceptionIfCustomerIsInvalid(customer);

            _customerRepository.Save(customer);
            _uow.Commit();

            response.Customer = customer.ConvertToCustomerDetailView();

            return response;
        }