public Task <Address> Handle(CreateAddress request, CancellationToken cancellationToken) { var address1 = Address1.Create(request.Address1); var address2 = Address2.Create(request.Address2); var city = City.Create(request.City); var state = State.Create(request.State); var postalCode = PostalCode.Create(request.PostalCode); var result = Address.Create(address1, address2, city, state, postalCode); return(Task.FromResult(result)); }
public async Task <IActionResult> Post([FromBody] CreateCustomerRequest request) { var validator = new CreateCustomerValidator(); var result = validator.Validate(request); if (!result.IsValid) { return(BadRequest(result.Errors)); } var address = Address2.Create(request.Address.HouseNoOrName, request.Address.Street, request.Address.City, request.Address.County, request.Address.PostCode ); var customer = Customer2.Create(request.CustomerId, request.FirstName, request.LastName, request.MiddleName, request.Title, address, request.DateOfBirth, request.CountryOfBirth, request.IdDocumentType, request.IdDocumentNumber, request.VatNumber, request.VatCountry); // wrap customer domain model var createCustomerCommand = new CreateCustomerCommand2(customer); // command handler returns response that wraps domain model var response = await _mediator.Send(createCustomerCommand); if (response.Status == OperationStatus.ValidationFailure) { return(BadRequest(response.ErrorMessages)); } if (response.Status == OperationStatus.Conflict) { return(Conflict(response)); } return(Ok(response.Value)); }