コード例 #1
0
        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);
        }