Criando serviço com múltiplas operações com WF4
Olá pessoal,
Dando continuidade aos nossos posts de serviços com WF4, hoje vou mostrar para você como criar serviços com suporte à múltiplas operações. Para isso vou dar continuidade ao código do post criando serviços com o WF4.
Como este é um serviço de calculadora e queremos suportar as operações matemáticas ao mesmo tempo, vamos precisar iniciar o nosso workflow com uma atividade de paralelismo e para isso devemos remover a atividade sequence atual através da opção de recortar (não queremos perder o que já fizemos):
Em seguida, arrastamos uma atividade Parallel e colamos a nossa atividade anterior:
Precisamos também trocar algumas configurações das variáveis, como o escopo das variáveis v1 e v2 e trocar o nome da variável soma para resultado (vamos reaproveitá-la nas outras operações), no final as variáveis devem ficar assim:
Notem que com essas alterações o fluxo que calcula a soma dos itens vai ficar com problemas de compilação, devemos trocar as referências feitas para a variável soma para a variável resultado, tanto na atividade Assign quanto na atividade SendResponse:
Em seguida devemos arrastar um atividade do tipo RequestAndSendReply para dentro da nossa atividade Parallel e configurá-la para realizar a multiplicação dos valores, conforme abaixo:
Lembre-se de configurar o ServiceContractName da atividade Receive do trecho da multiplicação para o mesmo contrato utilizado no trecho da soma e além disso marcar a atividade receive como CanCreateInstance:
Repetir o processo para as operação de divisão e subtração e no final o workflow deverá ficar parecido com o abaixo:
Ao executar o projeto, é possível notar que a ferramenta de WCF Test Client reconhece todas as operação do nosso workflow:
O código fonte do post pode ser baixado aqui.