public async Task <IResult <Guid> > CreateCustomer(CreateCustomerCommand createCommand) { if (createCommand == null) { return(await Result <Guid> .FailAsync("customer fields")); } var validator = createCommand.Validate(); if (!validator.IsValid) { return(await Result <Guid> .FailValidationAsync(validator.Errors)); } var customer = await _service.GetCustomerByEmail(createCommand.Email); if (customer != null) { return(await Result <Guid> .FailAsync("customer already exists")); } var id = await _service.CreateCustomer(createCommand); if (id == Guid.Empty) { return(await Result <Guid> .FailAsync("unable to create customer")); } return(await Result <Guid> .CreatedAsync(id)); }