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));
        }
Exemple #2
0
    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));
    }