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):

1

Em seguida, arrastamos uma atividade Parallel e colamos a nossa atividade anterior:

2

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:

3 

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:

4

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:

5

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:

6

Repetir o processo para as operação de divisão e subtração e no final o workflow deverá ficar parecido com o abaixo:

 

7

Ao executar o projeto, é possível notar que a ferramenta de WCF Test Client reconhece todas as operação do nosso workflow:

image

O código fonte do post pode ser baixado aqui.