public static Customer CreateRegistered( string email, string name, ICustomerUniquenessChecker customerUniquenessChecker) { return(new Customer(email, name)); }
public RegisterCustomerCommandHandler( ICustomerRepository customerRepository, ICustomerUniquenessChecker customerUniquenessChecker) { this._customerRepository = customerRepository; _customerUniquenessChecker = customerUniquenessChecker; }
public static async Task <Customer> CreateNew( string email, string name, ICustomerUniquenessChecker customerUniquenessChecker) { if (!EmailValidator.IsValid(email)) { throw new BusinessRuleValidationException($"This emailaddress is not valid: {email}"); } if (!NameValidator.IsValid(name)) { throw new BusinessRuleValidationException($"This name is not valid: {name}"); } var customer = new Customer(email, name); var isUnique = await customerUniquenessChecker.IsUnique(customer).ConfigureAwait(false); if (!isUnique) { throw new BusinessRuleValidationException("Customer with this email already exists."); } return(customer); }
public CustomerEmailMustBeUniqueRule( ICustomerUniquenessChecker customerUniquenessChecker, string email) { _customerUniquenessChecker = customerUniquenessChecker; _email = email; }
public RegisterCustomerCommandHandler(ICustomerRepository customerRepository, ICustomerUniquenessChecker customerUniquenessChecker, IUnitOfWork unitOfWork) { this._customerRepository = customerRepository; _customerUniquenessChecker = customerUniquenessChecker; _unitOfWork = unitOfWork; }
public static Customer Create() { ICustomerUniquenessChecker customerUniquenessChecker = Substitute.For <ICustomerUniquenessChecker>(); string email = "*****@*****.**"; customerUniquenessChecker.IsUnique(email).Returns(true); return(Customer.CreateRegistered(email, "Name", customerUniquenessChecker)); }
public RegisterCustomerCommandHandler( ICustomerRepository customerRepository, ICustomerUniquenessChecker customerUniquenessChecker, IEventBus eventBus) { this._customerRepository = customerRepository; _customerUniquenessChecker = customerUniquenessChecker; _eventBus = eventBus; }
public GetCustomerDetailsQueryHandler( ICustomerRepository customerRepository, ICustomerUniquenessChecker customerUniquenessChecker, IUnitOfWork unitOfWork) { this._customerRepository = customerRepository; _customerUniquenessChecker = customerUniquenessChecker; _unitOfWork = unitOfWork; }
public static Customer CreateRegistered( string email, string name, ICustomerUniquenessChecker customerUniquenessChecker) { CheckRule(new CustomerEmailMustBeUniqueRule(customerUniquenessChecker, email)); return(new Customer(email, name)); }
public static Customer CreateCustomer(string email, string name, ICustomerUniquenessChecker customerUniquenessChecker) { if (!customerUniquenessChecker.IsUserUnique(email)) { throw new BusinessRuleException("This e-mail is already in use."); } return(new Customer(email, name)); }
public RegisterCustomerCommandHandler( UserManager <ApplicationUser> userManager, IEcommerceUnitOfWork unitOfWork, ICustomerUniquenessChecker uniquenessChecker, IHttpContextAccessor httpContextAccessor) { _userManager = userManager; _unitOfWork = unitOfWork; _uniquenessChecker = uniquenessChecker; _httpContextAccessor = httpContextAccessor; }
//客户创建 public static Customer CreateRegistered(string email, string name, ICustomerUniquenessChecker customerUniquenessChecker) { var isUnique = customerUniquenessChecker.IsUnique(email); if (!isUnique) { throw new BusinessRuleValidationException("Customer with this email already existes."); } return(new Customer(email, name)); }
public RegisterCustomerCommandHandler( ICustomerRepository customerRepository, ICustomerUniquenessChecker customerUniquenessChecker, IPasswordHashCalculator passwordHashCalculator, IUnitOfWork unitOfWork) { _customerRepository = customerRepository; _customerUniquenessChecker = customerUniquenessChecker; _passwordHashCalculator = passwordHashCalculator; _unitOfWork = unitOfWork; }
public void GivenCustomerEmailIsUnique_WhenCustomerIsRegistering_IsSuccessful() { // Arrange ICustomerUniquenessChecker customerUniquenessChecker = Substitute.For <ICustomerUniquenessChecker>(); const string email = "*****@*****.**"; customerUniquenessChecker.IsUnique(email).Returns(true); // Act Customer customer = Customer.CreateRegistered(email, "Sample name", customerUniquenessChecker); // Assert AssertPublishedDomainEvent <CustomerRegisteredEvent>(customer); }
public Customer(string email, string name, ICustomerUniquenessChecker customerUniquenessChecker) { this.Email = email; this.Name = name; var isUnique = customerUniquenessChecker.IsUnique(this); if (!isUnique) { throw new BusinessRuleValidationException("Customer with this email already exists."); } this.AddDomainEvent(new CustomerRegisteredEvent(this)); }
public void GivenCustomerEmailIsNotUnique_WhenCustomerIsRegistering_BreaksCustomerEmailMustBeUniqueRule() { // Arrange ICustomerUniquenessChecker customerUniquenessChecker = Substitute.For <ICustomerUniquenessChecker>(); const string email = "*****@*****.**"; customerUniquenessChecker.IsUnique(email).Returns(false); // Assert AssertBrokenRule <CustomerEmailMustBeUniqueRule>(() => { // Act Customer.CreateRegistered(email, "Sample name", customerUniquenessChecker); }); }
public static async Task <Customer> CreateNew(string email, string name, ICustomerUniquenessChecker customerUniquenessChecker) { if (string.IsNullOrWhiteSpace(name)) { throw new ArgumentException("Customer name cannot be null or whitespace.", nameof(name)); } if (!await customerUniquenessChecker.IsUserUnique(email)) { throw new BusinessRuleException("This e-mail is already in use."); } var customerId = new CustomerId(Guid.NewGuid()); return(new Customer(customerId, email, name)); }
public Customer( string login, string password, int provinceId, int countryId, ICustomerUniquenessChecker customerUniquenessChecker, IPasswordHashCalculator passwordHashCalculator) { Id = Guid.NewGuid(); Login = login; ProvinceId = provinceId; CountryId = countryId; PasswordHash = passwordHashCalculator.Calculate(password); if (!customerUniquenessChecker.IsUnique(this)) { throw new BusinessRuleValidationException("Customer with this login already exists."); } AddDomainEvent(new CustomerRegisteredEvent(this)); }
public Customer(object email, object name, ICustomerUniquenessChecker customerUniquenessChecker) { this.email = email; this.name = name; _customerUniquenessChecker = customerUniquenessChecker; }