private void assuntoPaiIgualAoEditado(Susep.SISRH.Domain.AggregatesModel.AssuntoAggregate.Assunto assunto) { if (assunto != null && assunto.AssuntoPaiId != null && assunto.AssuntoPaiId == assunto.AssuntoId) { throw new SISRHDomainException("O assunto pai escolhido não pode ser o assunto em edição."); } }
private async Task validarAssunto(Susep.SISRH.Domain.AggregatesModel.AssuntoAggregate.Assunto assunto, bool alterouPai) { await assuntoComValorDuplicado(assunto); if (alterouPai) { assuntoPaiIgualAoEditado(assunto); await novoPaiEhAncestralDoAssuntoEmEdicao(assunto); } }
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."); } } }
private async Task validarAssunto(Susep.SISRH.Domain.AggregatesModel.AssuntoAggregate.Assunto assunto) { await assuntoComValorDuplicado(assunto); }