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.

ServiceModel

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.

PresentationModel

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:

Mensagem

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