Serviços e Validadores
As classes de serviços implementam as interfaces de serviços e herdam a classe ServicoPadrao, que deve ser tipada pelo Dto e o Objeto de Negocio da classe referente ao serviço. Como os serviços são consumidos por camadas de usuário, a troca de dados ocorre através dos Dto’s e os objetos de negocio, sendo os Dto’s visíveis à camada de usuário e os objetos de negocio utilizado pelas demais camadas para busca e persistência de dados.
A classe ServicoPadrao disponibiliza as funções de serviços genéricas implementadas para uso dos repositórios no seu contexto padrão. Funções extras desenvolvidas nas classes do repositório necessitam de uma função dedicada na camada de serviço para uso na camada de usuário. As figuras a seguir são os exemplos da classe de serviço, a ServicoPadrao e suas funções e o conversor.
Para persistência de dados uma boa pratica é a validação dos dados antes de uma operação no banco de dados. Existe no TCE Compartilhado uma classe chamada ValidadorPadrao, figura abaixo.
As funções padrões da classe fazem apenas validações padrões de objeto e alguns atributos. Validações especificas devem ser tratadas, um exemplo é existência de atributos de relacionamento entre tabelas.
Através da classe AbstractValidator a função RuleFor faz a chamadas das funções especificas para tratar cada validação na forma de LINQ. As funções Rulefor devem ser chamadas pelo override das funções padrão da classe herdada.

