Building the solution
This solution will be made up of a Core Workflow Service to handle the request-response messages from the web frontend. This service has a defined data contract for receiving the request and sending the response. This is defined in the DataContracts project in the following solution. These contracts have been simplified to focus on the concept rather than contract logic.
In order to support a growing site that may expand to other vendors down the road, a separate workflow project will be created for each vendor interaction. This will also allow for changes to individual vendors with no impact to other deployed solutions. Communication with this workflow will be done via defined contracts. In this case, the input is a product identifier and the response is a generic vendor result. Translation will be needed to convert the specific vendor results into the generic results.
The Core Workflow collects all the various generic response elements and constructs the response message...