Example #1
0
        /// <summary>
        /// M�todo para incluir/alterar um tema padr�o.
        /// </summary>
        /// <param name="entity">Entidade de tema padr�o.</param>
        /// <returns></returns>
        public static new bool Save(CFG_TemaPadrao entity)
        {
            TalkDBTransaction banco = new CFG_TemaPadraoDAO()._Banco.CopyThisInstance();

            banco.Open(IsolationLevel.ReadCommitted);

            try
            {
                if (entity.Validate())
                {
                    if (VerificaExistePorNome(entity.tep_id, entity.tep_nome))
                    {
                        throw new DuplicateNameException("J� existe um tema padr�o cadastrado com esse nome.");
                    }

                    return(new CFG_TemaPadraoDAO().Salvar(entity));
                }

                throw new ValidationException(UtilBO.ErrosValidacao(entity));
            }
            catch (Exception ex)
            {
                banco.Close(ex);
                throw;
            }
            finally
            {
                if (banco.ConnectionIsOpen)
                {
                    banco.Close();
                }
            }
        }
        /// <summary>
        /// Salva o log da API.
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public static new bool Save(LOG_UsuarioAPI entity)
        {
            if (entity.Validate())
            {
                return(new LOG_UsuarioAPIDAO().Salvar(entity));
            }

            throw new ValidationException(UtilBO.ErrosValidacao(entity));
        }
Example #3
0
        /// <summary>
        /// O m�todo realiza valida��es e criptografa a senha antes de salvar o usu�rio API.
        /// </summary>
        /// <param name="entity">Entidade do usu�rio</param>
        /// <returns></returns>
        public static new bool Save(CFG_UsuarioAPI entity)
        {
            CFG_UsuarioAPIDAO dao = new CFG_UsuarioAPIDAO();

            dao._Banco.Open(IsolationLevel.ReadCommitted);

            try
            {
                bool retorno = false;

                entity.uap_password = string.IsNullOrEmpty(entity.uap_password) ? string.Empty : UtilBO.CriptografarSenha(entity.uap_password, eCriptografa.TripleDES);

                if (entity.IsNew && string.IsNullOrEmpty(entity.uap_password))
                {
                    throw new ValidationException("Senha do usu�rio API � obrigat�rio.");
                }

                if (!string.IsNullOrEmpty(entity.uap_password) && entity.uap_password.Length > 256)
                {
                    throw new ValidationException("Senha do usu�rio API deve possuir at� 256 caracteres.");
                }

                if (!entity.Validate())
                {
                    throw new ValidationException(UtilBO.ErrosValidacao(entity));
                }

                if (VerificaUsernameExistente(entity, dao._Banco))
                {
                    throw new DuplicateNameException("J� existe um usu�rio API com o  mesmo nome de usu�rio.");
                }

                retorno = dao.Salvar(entity);

                if (!string.IsNullOrEmpty(entity.uap_password) && !entity.IsNew)
                {
                    retorno &= AtualizaSenha(entity, dao._Banco);
                }

                return(retorno);
            }
            catch (Exception ex)
            {
                dao._Banco.Close(ex);
                throw ex;
            }
            finally
            {
                if (dao._Banco.ConnectionIsOpen)
                {
                    dao._Banco.Close();
                }
            }
        }
Example #4
0
        public new static bool Save
        (
            ACA_AlunoCurriculo entity
            , TalkDBTransaction banco
            , Guid ent_id
        )
        {
            if (entity.Validate())
            {
                // Valida dados necessários para salvar a entidade.
                ValidaDados(entity, banco, ent_id);

                if (!entity.IsNew)
                {
                    // Se for alteração, e estiver alterando para Inativo, setar a data de saída.
                    ACA_AlunoCurriculo entAux = new ACA_AlunoCurriculo
                    {
                        alu_id = entity.alu_id
                        ,
                        alc_id = entity.alc_id
                    };
                    GetEntity(entAux, banco);

                    if ((!entAux.IsNew) &&
                        (entity.alc_dataSaida == new DateTime()) &&
                        (entity.alc_situacao == (byte)ACA_AlunoCurriculoSituacao.Inativo) &&
                        (entity.alc_situacao != entAux.alc_situacao))
                    {
                        // Se a situação não era inativo e passou a ser.
                        entity.alc_dataSaida = DateTime.Now;
                    }
                }
                else
                {
                    if (entity.alc_dataPrimeiraMatricula == new DateTime())
                    {
                        // Se a entidade for nova e o campo estiver nulo, setar a data da primeira matrícula.
                        entity.alc_dataPrimeiraMatricula = DateTime.Now;
                    }
                }

                if (ValidarIdadeIdeal(entity, banco, null, true, 0, ent_id))
                {
                    ACA_AlunoCurriculoDAO alucurDAO = new ACA_AlunoCurriculoDAO {
                        _Banco = banco
                    };
                    return(alucurDAO.Salvar(entity));
                }
            }

            throw new ACA_AlunoCurriculo_ValidationException(UtilBO.ErrosValidacao(entity));
        }
Example #5
0
        /// <summary>
        /// Salva os dados de uma entidade de tema de cores no banco.
        /// </summary>
        /// <param name="entity">Entidade de tema de cores.</param>
        /// <returns></returns>
        public static new bool Save(CFG_TemaPaleta entity)
        {
            if (entity.Validate())
            {
                if (VerificaExistePorNomeTemaPadrao(entity.tep_id, entity.tpl_id, entity.tpl_nome))
                {
                    throw new DuplicateNameException("J� existe um tema de cores cadastrado com esse nome.");
                }

                return(new CFG_TemaPaletaDAO().Salvar(entity));
            }

            throw new ValidationException(UtilBO.ErrosValidacao(entity));
        }
Example #6
0
        public new static bool Save
        (
            ACA_AlunoHistoricoObservacao entity
            , TalkDBTransaction banco
        )
        {
            if (entity.Validate())
            {
                ACA_AlunoHistoricoObservacaoDAO dao = new ACA_AlunoHistoricoObservacaoDAO {
                    _Banco = banco
                };
                return(dao.Salvar(entity));
            }

            throw new ACA_AlunoHistoricoObservacao_ValidationException(UtilBO.ErrosValidacao(entity));
        }
Example #7
0
        /// <summary>
        /// Inclui ou altera o tipo de equipamento de deficienete.
        /// </summary>
        /// <param name="entity">Entidade ACA_TipoEquipamentoDeficiente</param>
        public new static bool Save(ACA_TipoEquipamentoDeficiente entity)
        {
            if (entity.Validate())
            {
                if (VerificaNomeExistente(entity))
                {
                    throw new DuplicateNameException(
                              CustomResource.GetGlobalResourceObject("BLL", "TipoEquipamentoDeficiente.ValidaDuplicidade")
                              );
                }

                ACA_TipoEquipamentoDeficienteDAO dao = new ACA_TipoEquipamentoDeficienteDAO();
                return(dao.Salvar(entity));
            }

            throw new ValidationException(UtilBO.ErrosValidacao(entity));
        }
Example #8
0
        /// <summary>
        ///  Salva (inclusão ou alteração) uma configuração.
        /// </summary>
        /// <param name="entity">Entidade CFG_Configuracao</param>
        /// <returns></returns>
        public static bool Salvar(CFG_Configuracao entity)
        {
            CFG_ConfiguracaoDAO dao = new CFG_ConfiguracaoDAO();

            // Verifica chave da configuração
            if (VerificarChaveExistente(entity))
            {
                throw new DuplicateNameException("Já existe uma configuração cadastrada com esta chave.");
            }

            if (entity.Validate())
            {
                return(dao.Salvar(entity));
            }
            else
            {
                throw new ValidationException(UtilBO.ErrosValidacao(entity));
            }
        }
Example #9
0
        /// <summary>
        /// O método salva ou altera um registro de CFG_RelatorioDocumentoAluno
        /// </summary>
        /// <param name="entity">Entidade de CFG_RelatorioDocumentoAluno</param>
        /// <returns></returns>
        public static bool Salvar(CFG_RelatorioDocumentoAluno entity)
        {
            if (VerificaRelatorioExistente(entity))
            {
                throw new DuplicateNameException("Já existe um documento do aluno cadastrado com este relatorio.");
            }

            if (VerificaNomeExistente(entity))
            {
                throw new DuplicateNameException("Já existe um documento do aluno cadastrado com este nome.");
            }

            if (VerificaOrdemExistente(entity))
            {
                throw new DuplicateNameException("Já existe um documento do aluno cadastrado com esta ordem.");
            }

            if (entity.Validate())
            {
                return(new CFG_RelatorioDocumentoAlunoDAO().Salvar(entity));
            }

            throw new ValidationException(UtilBO.ErrosValidacao(entity));
        }
Example #10
0
        /// <summary>
        /// Salva o objeto de aprendizagem
        /// </summary>
        /// <param name="entity">Entidade do objeto de aprendizagem</param>
        /// <param name="listTci_ids">Lista de ciclos</param>
        public static void Save(ACA_ObjetoAprendizagem entity, List <int> listTci_ids)
        {
            ACA_ObjetoAprendizagemDAO dao = new ACA_ObjetoAprendizagemDAO();

            dao._Banco.Open(IsolationLevel.ReadCommitted);

            try
            {
                if (entity.Validate())
                {
                    bool isNew = entity.oap_id <= 0;

                    if (VerificaObjetoMesmoNome(entity.oap_id, entity.tds_id, entity.cal_ano, entity.oae_id, entity.oap_descricao, dao._Banco))
                    {
                        throw new ValidationException("Já existe um objeto de conhecimento cadastrado com a mesma descrição no eixo.");
                    }

                    Save(entity, dao._Banco);

                    List <ACA_ObjetoAprendizagemTipoCiclo> list = listTci_ids.Select(x => new ACA_ObjetoAprendizagemTipoCiclo
                    {
                        oap_id = entity.oap_id,
                        tci_id = x
                    }).ToList();

                    if (isNew)
                    {
                        Dictionary <int, string> lstCiclosEmUso = ACA_ObjetoAprendizagemTipoCicloBO.CiclosEmUso(entity.oap_id, dao._Banco);
                        if (lstCiclosEmUso.Any(c => !list.Any(p => p.tci_id == c.Key)))
                        {
                            if (lstCiclosEmUso.Where(c => !list.Any(p => p.tci_id == c.Key)).Count() > 1)
                            {
                                throw new ValidationException("Ciclos " + lstCiclosEmUso.Where(c => !list.Any(p => p.tci_id == c.Key)).Select(p => p.Value).Aggregate((a, b) => a + ", " + b) +
                                                              " estão em uso e não podem ser removidos.");
                            }
                            else
                            {
                                throw new ValidationException("Ciclo " + lstCiclosEmUso.Where(c => !list.Any(p => p.tci_id == c.Key)).First().Value +
                                                              " está em uso e não pode ser removido.");
                            }
                        }
                    }

                    ACA_ObjetoAprendizagemTipoCicloBO.DeleteNew(entity.oap_id, dao._Banco);

                    foreach (ACA_ObjetoAprendizagemTipoCiclo item in list)
                    {
                        ACA_ObjetoAprendizagemTipoCicloBO.Save(item, dao._Banco);
                    }
                }
                else
                {
                    throw new ValidationException(UtilBO.ErrosValidacao(entity));
                }

                GestaoEscolarUtilBO.LimpaCache("Cache_SelecionaTipoDisciplinaObjetosAprendizagem");
                GestaoEscolarUtilBO.LimpaCache("Cache_SelecionaTipoCicloAtivosEscola");
            }
            catch (Exception ex)
            {
                dao._Banco.Close(ex);
                throw;
            }
            finally
            {
                dao._Banco.Close();
            }
        }
    /// <summary>
    /// Carrega a entidade do endereço cadastrado quando for cadastro único, seta o número
    /// e o complemento.
    /// Retorna true:
    /// - Se o endereço não é obrigatório e está completo
    ///     (todos os campos obrigatórios estão preenchidos).
    /// - Se o endereço não é obrigatório e não foi preenchido nenhum campo.
    /// Retorna false:
    /// - Se o endereço é obrigatório e não foi preenchido todos os campos.
    /// - Se o endereço não é obrigatório e tem somente alguns campos preenchidos
    ///     (começou tem que terminar).
    /// </summary>
    /// <param name="ent"></param>
    /// <param name="numero"></param>
    /// <param name="complemento"></param>
    /// <param name="msgErro"></param>
    /// <returns></returns>
    public bool RetornaEnderecoCadastrado(out END_Endereco ent, out string numero, out string complemento, out string msgErro)
    {
        ent         = new END_Endereco();
        msgErro     = "";
        numero      = "";
        complemento = "";

        DataTable dt = RetornaEnderecos();

        if (dt.Rows.Count > 0)
        {
            // Carregar dados do endereço.
            DataRow dr = dt.Rows[0];

            string end_id = dr["end_id"].ToString();

            // Preenche o ID do endereço.
            if ((String.IsNullOrEmpty(end_id)) || (end_id.Equals(Guid.Empty.ToString())))
            {
                ent.end_id = new Guid(dr["id"].ToString());
                ent.IsNew  = true;
            }
            else
            {
                ent.end_id = new Guid(dr["end_id"].ToString());
                ent.IsNew  = false;

                END_EnderecoBO.GetEntity(ent);
            }

            ent.end_cep        = dr["end_cep"].ToString();
            ent.end_logradouro = dr["end_logradouro"].ToString();
            ent.end_distrito   = dr["end_distrito"].ToString();
            ent.end_zona       = Convert.ToByte(dr["end_zona"]);
            ent.end_bairro     = dr["end_bairro"].ToString();
            ent.cid_id         = String.IsNullOrEmpty(dr["cid_id"].ToString()) ? Guid.Empty : new Guid(dr["cid_id"].ToString());
            ent.cid_nome       = dr["cid_nome"].ToString();

            numero      = dr["numero"].ToString();
            complemento = dr["complemento"].ToString();
        }

        bool ret;

        // Verificar se endereço está válido.
        if (_VS_Obrigatorio)
        {
            ret = ((ent.Validate()) && (ent.cid_id != Guid.Empty));

            if (!ret)
            {
                msgErro = UtilBO.ErrosValidacao(ent);
            }

            if (ent.cid_id == Guid.Empty)
            {
                if (String.IsNullOrEmpty(ent.cid_nome))
                {
                    msgErro += "Cidade é obrigatório.<br/>";
                }
                else
                {
                    msgErro += "Cidade não encontrada.<br/>";
                }
            }

            if (String.IsNullOrEmpty(numero))
            {
                ret      = false;
                msgErro += "Número é obrigatório.";
            }
        }
        else
        {
            if ((!String.IsNullOrEmpty(ent.end_cep)) ||
                (!String.IsNullOrEmpty(ent.end_logradouro)) ||
                (!String.IsNullOrEmpty(numero)) ||
                (!String.IsNullOrEmpty(ent.end_distrito)) ||
                (ent.end_zona > 0) ||
                (!String.IsNullOrEmpty(ent.end_bairro)) ||
                (ent.cid_id != Guid.Empty))
            {
                // Se preencheu pelo menos 1 campo, tem que preencher todos.
                ret = ((ent.Validate()) && (ent.cid_id != Guid.Empty));

                if (!ret)
                {
                    msgErro += UtilBO.ErrosValidacao(ent);
                }

                if (ent.cid_id == Guid.Empty)
                {
                    msgErro += "Cidade é obrigatório.<br/>";
                }

                if (String.IsNullOrEmpty(numero))
                {
                    ret      = false;
                    msgErro += "Número é obrigatório.";
                }
            }
            else
            {
                ret = true;
            }
        }

        return(ret);
    }
Example #12
0
    /// <summary>
    /// Carrega a entidade do endereço cadastrado quando for cadastro único, seta o número
    /// e o complemento.
    /// Retorna true:
    /// - Se o endereço não é obrigatório e está completo
    ///     (todos os campos obrigatórios estão preenchidos).
    /// - Se o endereço não é obrigatório e não foi preenchido nenhum campo.
    /// Retorna false:
    /// - Se o endereço é obrigatório e não foi preenchido todos os campos.
    /// - Se o endereço não é obrigatório e tem somente alguns campos preenchidos
    ///     (começou tem que terminar).
    /// </summary>
    /// <param name="ent"></param>
    /// <param name="numero"></param>
    /// <param name="complemento"></param>
    /// <param name="msgErro"></param>
    /// <returns></returns>
    public bool RetornaEnderecoCadastrado(out DataTable dt, out string msgErro)
    {
        END_Endereco ent = new END_Endereco();

        msgErro = "";
        string numero      = "";
        string complemento = "";
        double latitude    = 0;
        double longitude   = 0;

        //DataTable
        //dt = RetornaEnderecos();
        dt = VS_Uae;
        bool ret = false;
        bool enderecoPrincipal = false;

        // if (dt.Rows.Count > 0)
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            // Carregar dados do endereço.
            DataRow dr = dt.Rows[i];

            if (Convert.ToBoolean(dr["enderecoprincipal"].ToString()))
            {
                enderecoPrincipal = Convert.ToBoolean(dr["enderecoprincipal"].ToString());
            }

            string end_id = dr["end_id"].ToString();

            // Preenche o ID do endereço.
            if ((String.IsNullOrEmpty(end_id)) || (end_id.Equals(Guid.Empty.ToString())))
            {
                ent.end_id = new Guid(dr["id"].ToString());
                ent.IsNew  = true;
            }
            else
            {
                ent.end_id = new Guid(dr["end_id"].ToString());
                ent.IsNew  = false;

                END_EnderecoBO.GetEntity(ent);
            }

            ent.end_cep        = dr["end_cep"].ToString();
            ent.end_logradouro = dr["end_logradouro"].ToString();
            ent.end_distrito   = dr["end_distrito"].ToString();
            if (!(string.IsNullOrEmpty(dr["end_zona"].ToString())))
            {
                ent.end_zona = Convert.ToByte(dr["end_zona"]);
            }
            ent.end_bairro = dr["end_bairro"].ToString();
            ent.cid_id     = String.IsNullOrEmpty(dr["cid_id"].ToString()) ? Guid.Empty : new Guid(dr["cid_id"].ToString());
            ent.cid_nome   = dr["cid_nome"].ToString();

            numero      = dr["numero"].ToString();
            complemento = dr["complemento"].ToString();

            //}

            // Verificar se endereço está válido.
            if (_VS_Obrigatorio)
            {
                ret = ((ent.Validate()) && (ent.cid_id != Guid.Empty));

                if (!ret)
                {
                    msgErro = UtilBO.ErrosValidacao(ent);
                }
                if (!string.IsNullOrEmpty(dr["latitude"].ToString()))
                {
                    if (double.TryParse(dr["latitude"].ToString(), out latitude))
                    {
                        dr["latitude"] = dr["latitude"].ToString().Replace(".", ",");
                        latitude       = string.IsNullOrEmpty(dr["latitude"].ToString()) ? 0 : double.Parse(dr["latitude"].ToString());
                    }
                    else
                    {
                        msgErro += "Latitude está incorreto.<br/>";
                        ret      = false;
                    }
                }
                if (!string.IsNullOrEmpty(dr["longitude"].ToString()))
                {
                    if (double.TryParse(dr["longitude"].ToString(), out longitude))
                    {
                        dr["longitude"] = dr["longitude"].ToString().Replace(".", ",");
                        longitude       = string.IsNullOrEmpty(dr["longitude"].ToString()) ? 0 : double.Parse(dr["longitude"].ToString());
                    }
                    else
                    {
                        msgErro += "Longitude está incorreto.<br/>";
                        ret      = false;
                    }
                }

                if (ent.cid_id == Guid.Empty)
                {
                    if (String.IsNullOrEmpty(ent.cid_nome))
                    {
                        msgErro += "Endereço " + (i + 1) + " - Cidade é obrigatório.<br/>";
                    }
                    else
                    {
                        msgErro += "Endereço " + (i + 1) + " - Cidade não encontrada.<br/>";
                    }
                }

                if (String.IsNullOrEmpty(numero))
                {
                    ret      = false;
                    msgErro += "Endereço " + (i + 1) + " - Número é obrigatório.<br/>";
                }
            }
            else
            {
                if ((!String.IsNullOrEmpty(ent.end_cep)) ||
                    (!String.IsNullOrEmpty(ent.end_logradouro)) ||
                    (!String.IsNullOrEmpty(numero)) ||
                    (!String.IsNullOrEmpty(ent.end_distrito)) ||
                    (ent.end_zona > 0) ||
                    (!String.IsNullOrEmpty(ent.end_bairro)) ||
                    (ent.cid_id != Guid.Empty))
                {
                    // Se preencheu pelo menos 1 campo, tem que preencher todos.
                    ret = ((ent.Validate()) && (ent.cid_id != Guid.Empty));

                    if (!ret)
                    {
                        msgErro += UtilBO.ErrosValidacao(ent);
                    }

                    if (ent.cid_id == Guid.Empty)
                    {
                        msgErro += "Endereço " + (i + 1) + " - Cidade é obrigatório.<br/>";
                    }

                    if (String.IsNullOrEmpty(numero))
                    {
                        ret      = false;
                        msgErro += "Endereço " + (i + 1) + " - Número é obrigatório.<br/>";
                    }
                    if (!enderecoPrincipal)
                    {
                        ret      = false;
                        msgErro += "É necessário selecionar um endereço principal.";
                    }
                    if (!string.IsNullOrEmpty(dr["latitude"].ToString()))
                    {
                        if (double.TryParse(dr["latitude"].ToString(), out latitude))
                        {
                            // dr["latitude"] = dr["latitude"].ToString().Replace(".", ",");
                            latitude = string.IsNullOrEmpty(dr["latitude"].ToString()) ? 0 : double.Parse(dr["latitude"].ToString());
                        }
                        else
                        {
                            msgErro += "Latitude está incorreto.<br/>";
                            ret      = false;
                        }
                    }

                    if (!string.IsNullOrEmpty(dr["longitude"].ToString()))
                    {
                        if (double.TryParse(dr["longitude"].ToString(), out longitude))
                        {
                            // dr["longitude"] = dr["longitude"].ToString().Replace(".", ",");
                            longitude = string.IsNullOrEmpty(dr["longitude"].ToString()) ? 0 : double.Parse(dr["longitude"].ToString());
                        }
                        else
                        {
                            msgErro += "Longitude está incorreto.<br/>";
                            ret      = false;
                        }
                    }
                }
                else
                {
                    ret = true;
                }
            }
        }
        if (!_VS_Obrigatorio && dt.Rows.Count == 0)
        {
            ret = true;
        }

        if (_VS_Obrigatorio && !enderecoPrincipal)
        {
            ret      = false;
            msgErro += "É necessário selecionar um endereço principal.";
        }

        return(ret);
    }
        /// <summary>
        /// Salva avaliações da turma.
        /// </summary>
        /// <param name="entTurma">Turma</param>
        /// <param name="listaAvaliacao">Lista com avaliações</param>
        /// <param name="banco">Controle de transação</param>
        /// <returns>True: sucesso || False: falha</returns>
        public static bool SalvarAvaliacaoTurma
        (
            TUR_Turma entTurma
            , List <TUR_TurmaCurriculoAvaliacao> listaAvaliacao
            , TalkDBTransaction banco
        )
        {
            if (listaAvaliacao.Count == 0)
            {
                throw new ValidationException("É necessário informar ao menos uma avaliação para a turma.");
            }

            // Verifica se foram selecionadas avaliações consecutivas
            int aux = 0;

            foreach (TUR_TurmaCurriculoAvaliacao entity in listaAvaliacao)
            {
                if (aux != 0)
                {
                    if (aux + 1 != entity.tca_numeroAvaliacao)
                    {
                        throw new ValidationException("Devem ser selecionados uma ou mais avaliações consecutivas.");
                    }
                }

                aux = entity.tca_numeroAvaliacao;
            }

            List <TUR_TurmaCurriculoAvaliacao> listaCadastrados = SelecionaAvaliacaoPorTurma(entTurma.tur_id, banco);

            foreach (TUR_TurmaCurriculoAvaliacao entity in listaAvaliacao)
            {
                entity.tur_id = entTurma.tur_id;

                TUR_TurmaCurriculoAvaliacao entAux = new TUR_TurmaCurriculoAvaliacao
                {
                    tur_id = entity.tur_id
                    ,
                    cur_id = entity.cur_id
                    ,
                    crr_id = entity.crr_id
                    ,
                    crp_id = entity.crp_id
                    ,
                    tca_id = entity.tca_id
                };
                GetEntity(entAux, banco);

                entity.IsNew = entAux.IsNew;

                if (!entity.Validate())
                {
                    throw new ValidationException(UtilBO.ErrosValidacao(entity));
                }

                // Salvar a avaliação.
                Save(entity, banco);
            }
            // Impede alteração da(s) avaliação(ões) cadastradas
            if (listaCadastrados.Any(cadastrada => !listaAvaliacao.Exists
                                         (p =>
                                         ((p.tur_id == cadastrada.tur_id) &&
                                          (p.cur_id == cadastrada.cur_id) &&
                                          (p.crr_id == cadastrada.crr_id) &&
                                          (p.crp_id == cadastrada.crp_id) &&
                                          (p.tca_id == cadastrada.tca_id)))))
            {
                throw new ValidationException("Não é permitido alterar a avaliação para essa turma.");
            }
            return(true);
        }