How to?
Como associar mensagem informativa à operação de cancelamento de documentos?
O cancelamento de documentos é uma operação crítica, que poderá dar origem a problemas legais.
Com o intuito de dar a possibilidade de alertar o utilizador para este fator, foi dada a possibilidade de configurar uma mensagem mais esclarecedora dos problemas que podem advir da operação, bem como a possibilidade de apresentar alternativas à operação de cancelar de forma a evitar esses problemas.
De seguida, irá ser apresentado o exemplo da modelação necessária efetuar para despoletar uma mensagem aquando do cancelamento de uma fatura.
Modelo de Serviços
É ao nível do modelo de serviços que se define que ações estarão associadas a determinado serviço.
Assim, é necessário associar ao serviço pretendido, a respetiva service action que retornará a mensagem.

Modelo de Apresentação
Para associar uma mensagem a uma operação é necessário definir qual é o serviço que vai retornar o objeto que tem a mensagem a apresentar aquando do cancelamento do registo. Foi adicionada uma propriedade, no modelo de apresentação, às operações de update, designada “Custom Delete Action”, onde é possível efetuar esta associação. Esta nova propriedade apenas é utilizada para este cenário de cancelamento de documento, não sendo, por isso, de preenchimento obrigatório.
Para tal basta selecionar a editor operation referente à operação de update da entidade e, nas propriedades, definir qual a service action a utilizar na “Custom Delete Action”. Nesta lista estarão disponíveis todas as service actions associadas ao respetivo serviço.

Geração de Código
Ao nível da geração de código é então gerado o seguinte método:
protected virtual async Task<System.Net.Http.HttpResponseMessage> OnConfirmInvoiceDeleteAsync(Guid id, [FromBody] string version)
{
throw new NotImplementedException("This method should be overridden");
}
O nome deste método será sempre constituído por “On<NomeServiceAction>Async”.
A geração de código apenas efetua a criação do método, mas não a sua implementação. Assim, ficará a cargo do programador implementar a lógica de negócio pretendida para a devolução da mensagem a apresentar aquando do cancelamento.
Produto
A nível aplicacional, isto traduz-se no aparecimento da seguinte mensagem quando se clica no botão “Cancelar” na visualização de uma fatura:

O botão “Yes” está binded à checkbox, ou seja, o mesmo só é desbloqueado quando se ativa a checkbox.