public bool DeclaratorioRequerimentoAtividade(IEspecificidade especificidade, bool solicitado = true, bool jaAssociado = true, bool apenasObrigatoriedade = false) { if (especificidade.RequerimentoId <= 0) { // Msg: O requerimento padrão é obrigatório. Validacao.Add(Mensagem.Especificidade.RequerimentoPradroObrigatoria); } if (especificidade.Atividades == null || especificidade.Atividades.Count == 0 || especificidade.Atividades[0].Id == 0) { // Msg: A atividade é obrigatória. Validacao.Add(Mensagem.Especificidade.AtividadeObrigatoria); } //Retorna se já encontrou erro de obrigatóriedade if (Validacao.Erros.Exists(x => x.Texto == Mensagem.Especificidade.RequerimentoPradroObrigatoria.Texto) || Validacao.Erros.Exists(x => x.Texto == Mensagem.Especificidade.AtividadeObrigatoria.Texto)) { return(false); } _da.ObterAtividadesNome(especificidade.Atividades); if (!_da.RequerimentoPossuiEmpreendimento(especificidade.RequerimentoId)) { Validacao.Add(Mensagem.Especificidade.RequerimentoEmpreendimentoObrigatorio(especificidade.Atividades.FirstOrDefault().NomeAtividade)); } else { if (!_da.EmpreendimentoPossuiCaracterizacaoBarragemDis(especificidade.RequerimentoId)) { Validacao.Add(Mensagem.Especificidade.CaracterizacaoBarragemDisNaoCadastrada); } } if (especificidade.Atividades != null) { foreach (var item in especificidade.Atividades) { if (!item.Ativada) { Validacao.Add(Mensagem.AtividadeEspecificidade.AtividadeDesativada(item.NomeAtividade)); } } } if (apenasObrigatoriedade) { return(Validacao.EhValido); } bool ehValido = true; if (especificidade.Atividades != null) { object retorno = false; foreach (var item in especificidade.Atividades) { if (jaAssociado) { //Validação da existencia de um outro título do mesmo modelo e atividade para o mesmo empreendimento if (!DeclaratorioValidarAtividadeJaAssociada(especificidade.RequerimentoId, item.Id, especificidade.Titulo.Id, Convert.ToInt32(especificidade.Titulo.Modelo))) { ehValido = false; continue; } } if (solicitado) { //Validação da solicitação do modelo/atividade no requerimento retorno = DeclaratorioValidarModeloNaoRequisitado(especificidade.RequerimentoId, item.Id, Convert.ToInt32(especificidade.Titulo.Modelo)); if (!Convert.ToBoolean(retorno)) { ehValido = false; } } } } return(ehValido); }