How to?

Como modelar um atributo com side-effects?

Para modelar atributos com side-effects, é necessário seguir os seguintes passos:

  1. Abrir o Modelo de Entidades (EntitiesModel.ed3)
  2. Aceder às propriedades do atributo ao qual se quer associar o Side-Effect.
  3. Colocar a propriedade "Has Side Effects" a True

Side Effects

  1. Transformar a solução para gerar os métodos necessários para desenvolver a funcionalidade do Side-Effect
  2. Se não existir, criar a classe Service Manager para o serviço da entidade à qual se adicionou o Side Effect (ServiceNameServiceManager.SideEffects.cs)

Nota: No caso de ser necessário criar uma classe nova, o namespace desta classe deve ser alterado para conter apenas até Primavera.NomeMódulo.Domain~´

  1. Fazer override ao método que foi gerado após a transformação da solução: o método é o que contém o nome do campo ao qual se associou o Side Effect.

Como a lógica do Side Effect é uma lógica de negócio, deve ser inserida no Manager. Assim, é necessário adicionar ao método “contexto.Handled = false”, para ser direcionado para o Manager, onde será feito mais uma vez override ao método:

Side Effects

  1. Se não existir, criar a classe Manager para o serviço da entidade à qual se adicionou o Side Effect (ServiceNameManager.SideEffects.cs)

Nota: mais uma vez, no caso de criar uma classe nova, o namespace desta classe deve ser alterado para conter apenas até Primavera.NomeMódulo.Domain

  1. Por fim, deve ser feito override ao método e inserida a lógica de negócio subjacente ao Side Effect:

Side Effects