private async Task assuntoComValorDuplicado(Susep.SISRH.Domain.AggregatesModel.AssuntoAggregate.Assunto assunto)
        {
            if (assunto != null)
            {
                var valorDuplicado = await AssuntoQuery.ValorDuplicadoAsync(assunto.Valor, null);

                if (valorDuplicado.Result)
                {
                    throw new SISRHDomainException("Assunto com valor duplicado.");
                }
            }
        }
        private async Task novoPaiEhAncestralDoAssuntoEmEdicao(Susep.SISRH.Domain.AggregatesModel.AssuntoAggregate.Assunto assuntoEmEdicao)
        {
            if (assuntoEmEdicao != null && assuntoEmEdicao.AssuntoPaiId != null)
            {
                var ids = await AssuntoQuery.ObterIdsDeTodosOsPaisAsync(assuntoEmEdicao.AssuntoPaiId.Value);

                if (ids.Result.Where(id => id == assuntoEmEdicao.AssuntoId).Count() > 0)
                {
                    throw new SISRHDomainException("O assunto pai escolhido não pode ser ancestral do assunto em edição.");
                }
            }
        }