public async Task <ActionResult <GenericCommandResult> > Create( [FromBody] CreateCustomerCommand command, [FromServices] CustomerHandler handler, [FromServices] UserHandler userHandler ) { var validationResult = command.Validate(); if (!validationResult.Success) { return(BadRequest(validationResult)); } var userResult = (GenericCommandResult)userHandler.Handle(new CreateUserCommand(command.Email, command.Password, "customer")); if (userResult.Success) { var user = (User)userResult.Data; command.SetUserId(user.Id); var result = handler.Handle(command); return(Ok(result)); } return(BadRequest(userResult)); }