Пример #1
0
        public override ArrayList GetItems(DataSet currentDataSet, int pageNr, int itemsPerPage, IDbConnection conn)
        {
            ArrayList rows = new ArrayList();

            using (SqlCommand command = new SqlCommand("", (SqlConnection)conn))
            {
                command.CommandText = "CREATE TABLE #ItemsID (IDDeposito BIGINT, Designacao NVARCHAR(200)";
                command.ExecuteNonQuery();

                command.CommandText = "INSERT INTO #ItemsID SELECT IDDeposito, Designacao FROM #OrderedItems WHERE seq_id >= @seq_id1 AND seq_id <= @seq_id2 ORDER BY seq_id";
                command.Parameters.AddWithValue("@seq_id1", (pageNr - 1) * itemsPerPage + 1);
                command.Parameters.AddWithValue("@seq_id2", pageNr * itemsPerPage);
                command.ExecuteNonQuery();

                using (SqlDataAdapter da = new SqlDataAdapter(command))
                {
                    command.Parameters.AddWithValue("@isDeleted", 0);
                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["Deposito"],
                                                                                     "INNER JOIN #ItemsID ON #ItemsID.IDDeposito = Deposito.ID ");
                    da.Fill(currentDataSet, "Deposito");
                }

                command.CommandText = "SELECT * FROM #ItemsID";
                SqlDataReader reader = command.ExecuteReader();

                ArrayList row;
                while (reader.Read())
                {
                    row = new ArrayList();
                    row.Add(reader.GetInt64(0));
                    row.Add(reader.GetString(1));
                    rows.Add(row);
                }
                reader.Close();
            }
            return(rows);
        }
Пример #2
0
        public override void LoadDepositosPermissionsData(DataSet currentDataSet, long trusteeID, IDbConnection conn)
        {
            using (SqlCommand command = SqlSyntax.CreateSelectCommandWithNoDeletedRowsParam((SqlConnection)conn))
                using (SqlDataAdapter da = new SqlDataAdapter(command))
                {
                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["Trustee"]);
                    da.Fill(currentDataSet, "Trustee");

                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["TrusteeUser"]);
                    da.Fill(currentDataSet, "TrusteeUser");

                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["TrusteeGroup"]);
                    da.Fill(currentDataSet, "TrusteeGroup");

                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["UserGroups"]);
                    da.Fill(currentDataSet, "UserGroups");

                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["Deposito"]);
                    da.Fill(currentDataSet, "Deposito");

                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["TrusteeDepositoPrivilege"]);
                    da.Fill(currentDataSet, "TrusteeDepositoPrivilege");
                }
        }
Пример #3
0
        private void LoadDataRows(DataSet currentDataSet, long docID, IDbConnection conn)
        {
            using (SqlCommand command = SqlSyntax.CreateSelectCommandWithNoDeletedRowsParam((SqlConnection)conn))
                using (SqlDataAdapter da = new SqlDataAdapter(command))
                {
                    command.Parameters.AddWithValue("@SFRDImagemTipo", "Fedora");

                    // carregar toda a informação referente aos objectos digitais do documento actual e seus subdocumentos
                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["SFRDImagemVolume"],
                                                                                     "INNER JOIN ( " +
                                                                                     "SELECT DISTINCT IDSFDImagemVolume " +
                                                                                     "FROM SFRDImagem " +
                                                                                     "INNER JOIN FRDBase ON FRDBase.ID = SFRDImagem.IDFRDBase " +
                                                                                     "INNER JOIN #niveisTemp ON #niveisTemp.ID = FRDBase.IDNivel " +
                                                                                     "WHERE SFRDImagem.Tipo = @SFRDImagemTipo" +
                                                                                     ") img ON img.IDSFDImagemVolume = SFRDImagemVolume.ID");
                    da.Fill(currentDataSet, "SFRDImagemVolume");

                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["SFRDImagem"],
                                                                                     "INNER JOIN FRDBase ON FRDBase.ID = SFRDImagem.IDFRDBase " +
                                                                                     "INNER JOIN #niveisTemp ON #niveisTemp.ID = FRDBase.IDNivel " +
                                                                                     "WHERE SFRDImagem.Tipo = @SFRDImagemTipo");
                    da.Fill(currentDataSet, "SFRDImagem");

                    command.CommandText = @"
                    INSERT INTO #odsTemp
                    SELECT IDObjetoDigital
                    FROM SFRDImagemObjetoDigital
                        INNER JOIN SFRDImagem ON SFRDImagem.IDFRDBase = SFRDImagemObjetoDigital.IDFRDBase AND SFRDImagem.idx = SFRDImagemObjetoDigital.idx AND SFRDImagem.isDeleted = @isDeleted
                        INNER JOIN FRDBase ON FRDBase.ID = SFRDImagem.IDFRDBase AND FRDBase.isDeleted = @isDeleted
                        INNER JOIN #niveisTemp ON #niveisTemp.ID = FRDBase.IDNivel
                    WHERE SFRDImagem.Tipo = 'Fedora' AND SFRDImagemObjetoDigital.isDeleted = @isDeleted";
                    command.ExecuteNonQuery();

                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["ObjetoDigital"],
                                                                                     "INNER JOIN #odsTemp ON #odsTemp.ID = ObjetoDigital.ID");
                    da.Fill(currentDataSet, "ObjetoDigital");

                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["SFRDImagemObjetoDigital"],
                                                                                     "INNER JOIN SFRDImagem ON SFRDImagem.IDFRDBase = SFRDImagemObjetoDigital.IDFRDBase AND SFRDImagem.idx = SFRDImagemObjetoDigital.idx " +
                                                                                     "INNER JOIN FRDBase ON FRDBase.ID = SFRDImagem.IDFRDBase " +
                                                                                     "INNER JOIN #niveisTemp ON #niveisTemp.ID = FRDBase.IDNivel " +
                                                                                     "WHERE SFRDImagem.Tipo = @SFRDImagemTipo");
                    da.Fill(currentDataSet, "SFRDImagemObjetoDigital");

                    // carregar permissões
                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["TrusteeObjetoDigitalPrivilege"],
                                                                                     "INNER JOIN #odsTemp ON #odsTemp.ID = TrusteeObjetoDigitalPrivilege.IDObjetoDigital");
                    da.Fill(currentDataSet, "TrusteeObjetoDigitalPrivilege");

                    // carregar ODs e respetivas permissões sem um nivel documental correspondente
                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["ObjetoDigital"],
                                                                                     "INNER JOIN ObjetoDigitalRelacaoHierarquica ON ObjetoDigitalRelacaoHierarquica.ID = ObjetoDigital.ID " +
                                                                                     "INNER JOIN #odsTemp ON #odsTemp.ID = ObjetoDigitalRelacaoHierarquica.IDUpper ");
                    da.Fill(currentDataSet, "ObjetoDigital");

                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["ObjetoDigitalRelacaoHierarquica"],
                                                                                     "INNER JOIN #odsTemp ON #odsTemp.ID = ObjetoDigitalRelacaoHierarquica.IDUpper");
                    da.Fill(currentDataSet, "ObjetoDigitalRelacaoHierarquica");

                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["TrusteeObjetoDigitalPrivilege"],
                                                                                     "INNER JOIN ObjetoDigitalRelacaoHierarquica ON ObjetoDigitalRelacaoHierarquica.ID = TrusteeObjetoDigitalPrivilege.IDObjetoDigital " +
                                                                                     "INNER JOIN #odsTemp ON #odsTemp.ID = ObjetoDigitalRelacaoHierarquica.IDUpper ");
                    da.Fill(currentDataSet, "TrusteeObjetoDigitalPrivilege");
                }
        }
Пример #4
0
        public override void LoadObjDigitalPermissoesSimples(DataSet currentDataSet, long nRowIDUpper, IDbConnection conn)
        {
            using (SqlCommand command = new SqlCommand(string.Empty, (SqlConnection)conn))
                using (SqlDataAdapter da = new SqlDataAdapter(command))
                {
                    command.CommandText = "CREATE TABLE #temp (ID BIGINT)";
                    command.ExecuteNonQuery();

                    command.Parameters.AddWithValue("@isDeleted", 0);
                    command.Parameters.AddWithValue("@nRowIDUpper", nRowIDUpper);
                    command.Parameters.AddWithValue("@IDTipoNivelRelacionado", 10);

                    command.CommandText = @"INSERT INTO #temp
SELECT rh.ID
FROM FRDBase frdUpper
    INNER JOIN RelacaoHierarquica rh ON rh.IDUpper = frdUpper.IDNivel AND rh.IDTipoNivelRelacionado = @IDTipoNivelRelacionado AND rh.isDeleted = @isDeleted
WHERE frdUpper.IDNivel = @nRowIDUpper AND frdUpper.isDeleted = @isDeleted";
                    command.ExecuteNonQuery();

                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["Trustee"]);
                    da.Fill(currentDataSet, "Trustee");

                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["TrusteeUser"]);
                    da.Fill(currentDataSet, "TrusteeUser");

                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["TrusteeGroup"]);
                    da.Fill(currentDataSet, "TrusteeGroup");

                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["UserGroups"]);
                    da.Fill(currentDataSet, "UserGroups");

                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["RelacaoHierarquica"],
                                                                                     "INNER JOIN #temp ON #temp.ID = RelacaoHierarquica.ID");
                    da.Fill(currentDataSet, "RelacaoHierarquica");

                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["Nivel"],
                                                                                     "INNER JOIN #temp ON #temp.ID = Nivel.ID");
                    da.Fill(currentDataSet, "Nivel");

                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["FRDBase"],
                                                                                     "INNER JOIN #temp ON #temp.ID = FRDBase.IDNivel");
                    da.Fill(currentDataSet, "FRDBase");

                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["SFRDImagem"],
                                                                                     "INNER JOIN FRDBase ON FRDBase.ID = SFRDImagem.IDFRDBase " +
                                                                                     "INNER JOIN #temp ON #temp.ID = FRDBase.IDNivel");
                    da.Fill(currentDataSet, "SFRDImagem");

                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["ObjetoDigital"],
                                                                                     "INNER JOIN SFRDImagemObjetoDigital ON SFRDImagemObjetoDigital.IDObjetoDigital = ObjetoDigital.ID " +
                                                                                     "INNER JOIN SFRDImagem ON SFRDImagem.IDFRDBase = SFRDImagemObjetoDigital.IDFRDBase AND SFRDImagem.idx = SFRDImagemObjetoDigital.idx " +
                                                                                     "INNER JOIN FRDBase ON FRDBase.ID = SFRDImagem.IDFRDBase " +
                                                                                     "INNER JOIN #temp ON #temp.ID = FRDBase.IDNivel");
                    da.Fill(currentDataSet, "ObjetoDigital");

                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["SFRDImagemObjetoDigital"],
                                                                                     "INNER JOIN SFRDImagem ON SFRDImagem.IDFRDBase = SFRDImagemObjetoDigital.IDFRDBase AND SFRDImagem.idx = SFRDImagemObjetoDigital.idx " +
                                                                                     "INNER JOIN FRDBase ON FRDBase.ID = SFRDImagem.IDFRDBase " +
                                                                                     "INNER JOIN #temp ON #temp.ID = FRDBase.IDNivel");
                    da.Fill(currentDataSet, "SFRDImagemObjetoDigital");

                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["SFRDImagemVolume"]);
                    da.Fill(currentDataSet, "SFRDImagemVolume");

                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["TrusteeObjetoDigitalPrivilege"],
                                                                                     "INNER JOIN ObjetoDigital ON ObjetoDigital.ID = TrusteeObjetoDigitalPrivilege.IDObjetoDigital " +
                                                                                     "INNER JOIN SFRDImagemObjetoDigital ON SFRDImagemObjetoDigital.IDObjetoDigital = ObjetoDigital.ID " +
                                                                                     "INNER JOIN SFRDImagem ON SFRDImagem.IDFRDBase = SFRDImagemObjetoDigital.IDFRDBase AND SFRDImagem.idx = SFRDImagemObjetoDigital.idx " +
                                                                                     "INNER JOIN FRDBase ON FRDBase.ID = SFRDImagem.IDFRDBase " +
                                                                                     "INNER JOIN #temp ON #temp.ID = FRDBase.IDNivel");
                    da.Fill(currentDataSet, "TrusteeObjetoDigitalPrivilege");

                    command.CommandText = "DROP TABLE #temp";
                    command.ExecuteNonQuery();
                }
        }
        public override void LoadStaticDataTables(DataSet CurrentDataSet, IDbConnection conn)
        {
            using (SqlCommand command = SqlSyntax.CreateSelectCommandWithNoDeletedRowsParam((SqlConnection)conn))
                using (SqlDataAdapter da = new SqlDataAdapter(command))
                {
                    try
                    {
                        // Normas de países, línguas, caligrafia...
                        da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["Iso15924"]);
                        da.Fill(CurrentDataSet, "Iso15924");
                        da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["Iso3166"]);
                        da.Fill(CurrentDataSet, "Iso3166");
                        da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["Iso639"]);
                        da.Fill(CurrentDataSet, "Iso639");

                        //Configuracoes
                        da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["GlobalConfig"]);
                        da.Fill(CurrentDataSet, "GlobalConfig");
                        da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["ConfigAlfabeto"]);
                        da.Fill(CurrentDataSet, "ConfigAlfabeto");
                        da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["ConfigLingua"]);
                        da.Fill(CurrentDataSet, "ConfigLingua");

                        //Conjunto de Privilégios da Aplicação
                        //Identificam acesso a Módulos da aplicação ou funcionalidades dentro destes, não a dados.
                        da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["TipoFunctionGroup"]);
                        da.Fill(CurrentDataSet, "TipoFunctionGroup");
                        da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["TipoFunction"]);
                        da.Fill(CurrentDataSet, "TipoFunction");
                        da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["TipoOperation"]);
                        da.Fill(CurrentDataSet, "TipoOperation");
                        da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["NivelTipoOperation"]);
                        da.Fill(CurrentDataSet, "NivelTipoOperation");
                        da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["DepositoTipoOperation"]);
                        da.Fill(CurrentDataSet, "DepositoTipoOperation");
                        da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["ObjetoDigitalTipoOperation"]);
                        da.Fill(CurrentDataSet, "ObjetoDigitalTipoOperation");
                        da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["FunctionOperation"]);
                        da.Fill(CurrentDataSet, "FunctionOperation");

                        //Tipos de producto existentes e funcionalidades proprias de cada um
                        da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["TipoServer"]);
                        da.Fill(CurrentDataSet, "TipoServer");
                        da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["Modules"]);
                        da.Fill(CurrentDataSet, "Modules");
                        da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["ProductFunction"]);
                        da.Fill(CurrentDataSet, "ProductFunction");

                        //Enumerados utilizados em foreign keys
                        da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["TipoControloAutForma"]);
                        da.Fill(CurrentDataSet, "TipoControloAutForma");
                        da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["TipoControloAutRel"]);
                        da.Fill(CurrentDataSet, "TipoControloAutRel");
                        da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["TipoDensidade"]);
                        da.Fill(CurrentDataSet, "TipoDensidade");
                        da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["TipoEntidadeProdutora"]);
                        da.Fill(CurrentDataSet, "TipoEntidadeProdutora");
                        da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["TipoEstadoDeConservacao"]);
                        da.Fill(CurrentDataSet, "TipoEstadoDeConservacao");
                        da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["TipoFormaSuporteAcond"]);
                        da.Fill(CurrentDataSet, "TipoFormaSuporteAcond");
                        da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["TipoFRDBase"]);
                        da.Fill(CurrentDataSet, "TipoFRDBase");
                        da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["TipoMaterialDeSuporte"]);
                        da.Fill(CurrentDataSet, "TipoMaterialDeSuporte");
                        da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["TipoMedida"]);
                        da.Fill(CurrentDataSet, "TipoMedida");
                        da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["TipoNivel"]);
                        da.Fill(CurrentDataSet, "TipoNivel");
                        da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["TipoNivelRelacionado"]);
                        da.Fill(CurrentDataSet, "TipoNivelRelacionado");
                        da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["TipoNivelRelacionadoCodigo"]);
                        da.Fill(CurrentDataSet, "TipoNivelRelacionadoCodigo");
                        da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["RelacaoTipoNivelRelacionado"]);
                        da.Fill(CurrentDataSet, "RelacaoTipoNivelRelacionado");
                        da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["TipoNoticiaAut"]);
                        da.Fill(CurrentDataSet, "TipoNoticiaAut");
                        da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["TipoNoticiaATipoControloAForma"]);
                        da.Fill(CurrentDataSet, "TipoNoticiaATipoControloAForma");
                        da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["TipoOrdenacao"]);
                        da.Fill(CurrentDataSet, "TipoOrdenacao");
                        da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["TipoPertinencia"]);
                        da.Fill(CurrentDataSet, "TipoPertinencia");
                        da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["TipoSuporte"]);
                        da.Fill(CurrentDataSet, "TipoSuporte");
                        da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["TipoAcondicionamento"]);
                        da.Fill(CurrentDataSet, "TipoAcondicionamento");
                        da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["TipoTecnicaRegisto"]);
                        da.Fill(CurrentDataSet, "TipoTecnicaRegisto");
                        da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["TipoEstadoConservacao"]);
                        da.Fill(CurrentDataSet, "TipoEstadoConservacao");
                        da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["TipoSubDensidade"]);
                        da.Fill(CurrentDataSet, "TipoSubDensidade");
                        da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["TipoTecnicasDeRegisto"]);
                        da.Fill(CurrentDataSet, "TipoTecnicasDeRegisto");
                        da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["TipoTradicaoDocumental"]);
                        da.Fill(CurrentDataSet, "TipoTradicaoDocumental");

                        //Autos de eliminação
                        da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["AutoEliminacao"]);
                        da.Fill(CurrentDataSet, "AutoEliminacao");

                        //Tipos de entrega
                        da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["TipoEntrega"]);
                        da.Fill(CurrentDataSet, "TipoEntrega");

                        //Integracao
                        da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["Integ_Sistema"]);
                        da.Fill(CurrentDataSet, "Integ_Sistema");
                        da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["Integ_TipoEntidade"]);
                        da.Fill(CurrentDataSet, "Integ_TipoEntidade");

                        // TipoTipologias:
                        da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["TipoTipologias"]);
                        da.Fill(CurrentDataSet, "TipoTipologias");
                    }
                    catch (Exception)
                    {
                        throw;
                    }
                }
        }
Пример #6
0
        public override void LoadUF(DataSet currentDataSet, long idNivel, IDbConnection conn)
        {
            using (SqlCommand command = SqlSyntax.CreateSelectCommandWithNoDeletedRowsParam((SqlConnection)conn))
                using (SqlDataAdapter da = new SqlDataAdapter(command))
                {
                    command.Parameters.AddWithValue("@idNivel", idNivel);
                    // nuvem nível
                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["Nivel"],
                                                                                     "WHERE ID=@idNivel");
                    da.Fill(currentDataSet, "Nivel");

                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["NivelDesignado"],
                                                                                     "WHERE ID=@idNivel");
                    da.Fill(currentDataSet, "NivelDesignado");

                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["LocalConsulta"]);
                    da.Fill(currentDataSet, "LocalConsulta");

                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["NivelUnidadeFisica"],
                                                                                     "WHERE ID=@idNivel");
                    da.Fill(currentDataSet, "NivelUnidadeFisica");

                    // entidade detentora
                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["RelacaoHierarquica"],
                                                                                     "WHERE ID=@idNivel");
                    da.Fill(currentDataSet, "RelacaoHierarquica");

                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["Nivel"],
                                                                                     "INNER JOIN RelacaoHierarquica rh ON rh.ID = Nivel.ID " +
                                                                                     "INNER JOIN Nivel nED ON nED.ID = rh.IDUpper " +
                                                                                     "WHERE Nivel.ID=@idNivel");
                    da.Fill(currentDataSet, "Nivel");

                    // nuvem frdbase
                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["FRDBase"],
                                                                                     "WHERE FRDBase.IDNivel=@idNivel");
                    da.Fill(currentDataSet, "FRDBase");

                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["SFRDDatasProducao"],
                                                                                     "INNER JOIN FRDBase frd ON frd.ID = SFRDDatasProducao.IDFRDBase " +
                                                                                     "WHERE frd.IDNivel=@idNivel");
                    da.Fill(currentDataSet, "SFRDDatasProducao");

                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["SFRDUFCota"],
                                                                                     "INNER JOIN FRDBase frd ON frd.ID = SFRDUFCota.IDFRDBase " +
                                                                                     "WHERE frd.IDNivel=@idNivel");
                    da.Fill(currentDataSet, "SFRDUFCota");

                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["SFRDConteudoEEstrutura"],
                                                                                     "INNER JOIN FRDBase frd ON frd.ID = SFRDConteudoEEstrutura.IDFRDBase " +
                                                                                     "WHERE frd.IDNivel=@idNivel");
                    da.Fill(currentDataSet, "SFRDConteudoEEstrutura");

                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["SFRDUFDescricaoFisica"],
                                                                                     "INNER JOIN FRDBase frd ON frd.ID = SFRDUFDescricaoFisica.IDFRDBase " +
                                                                                     "WHERE frd.IDNivel=@idNivel");
                    da.Fill(currentDataSet, "SFRDUFDescricaoFisica");

                    // unidades informacionais associadas
                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["Nivel"],
                                                                                     "INNER JOIN FRDBase ON FRDBase.IDNivel = Nivel.ID " +
                                                                                     "INNER JOIN SFRDUnidadeFisica ON SFRDUnidadeFisica.IDFRDBase = FRDBase.ID " +
                                                                                     "WHERE SFRDUnidadeFisica.IDNivel=@idNivel");
                    da.Fill(currentDataSet, "Nivel");

                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["RelacaoHierarquica"],
                                                                                     "INNER JOIN FRDBase ON FRDBase.IDNivel = RelacaoHierarquica.ID " +
                                                                                     "INNER JOIN SFRDUnidadeFisica ON SFRDUnidadeFisica.IDFRDBase = FRDBase.ID " +
                                                                                     "WHERE SFRDUnidadeFisica.IDNivel=@idNivel");
                    da.Fill(currentDataSet, "RelacaoHierarquica");

                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["Nivel"],
                                                                                     "INNER JOIN RelacaoHierarquica ON RelacaoHierarquica.IDUpper = Nivel.ID " +
                                                                                     "INNER JOIN FRDBase ON FRDBase.IDNivel = RelacaoHierarquica.ID " +
                                                                                     "INNER JOIN SFRDUnidadeFisica ON SFRDUnidadeFisica.IDFRDBase = FRDBase.ID " +
                                                                                     "WHERE SFRDUnidadeFisica.IDNivel=@idNivel");
                    da.Fill(currentDataSet, "Nivel");

                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["FRDBase"],
                                                                                     "INNER JOIN SFRDUnidadeFisica ON SFRDUnidadeFisica.IDFRDBase = FRDBase.ID " +
                                                                                     "WHERE SFRDUnidadeFisica.IDNivel=@idNivel");
                    da.Fill(currentDataSet, "FRDBase");

                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["SFRDUnidadeFisica"],
                                                                                     "WHERE IDNivel=@idNivel");
                    da.Fill(currentDataSet, "SFRDUnidadeFisica");
                }
        }
Пример #7
0
        public override ArrayList GetItems(DataSet currentDataSet, int pageNr, int itemsPerPage, IDbConnection conn)
        {
            ArrayList rows = new ArrayList();

            using (SqlCommand command = new SqlCommand("", (SqlConnection)conn))
            {
                if (!uaCalculated)
                {
                    command.CommandText = "CREATE TABLE #NumUnidadesInformacionais(IDNivel BIGINT, NumUnidadesInformacionais BIGINT)";
                    command.ExecuteNonQuery();

                    command.CommandText =
                        "INSERT INTO #NumUnidadesInformacionais " +
                        "SELECT sfrduf.IDNivel, COUNT(*) NumUnidadesInformacionais " +
                        "FROM #OrderedItems oi " +
                        "INNER JOIN SFRDUnidadeFisica sfrduf ON sfrduf.IDNivel = oi.ID " +
                        "WHERE seq_id >= @seq_id1 AND seq_id <= @seq_id2 AND sfrduf.isDeleted = @isDeleted " +
                        "GROUP BY sfrduf.IDNivel";
                    command.Parameters.AddWithValue("@isDeleted", 0);
                    command.Parameters.AddWithValue("@seq_id1", (pageNr - 1) * itemsPerPage + 1);
                    command.Parameters.AddWithValue("@seq_id2", pageNr * itemsPerPage);
                    command.ExecuteNonQuery();
                    command.Parameters.Clear();
                    uaCalculated = true;
                }

                command.CommandText = "CREATE TABLE #ItemsID (ID BIGINT, Codigo NVARCHAR(110), Designacao NVARCHAR(768), Cota NVARCHAR(300), CodigoBarras NVARCHAR(20), InicioAno NVARCHAR(4), " +
                                      "InicioMes NVARCHAR(2), InicioDia NVARCHAR(2), InicioAtribuida BIT, FimAno NVARCHAR(4), FimMes NVARCHAR(2), FimDia NVARCHAR(2), FimAtribuida BIT, NumUnidadesInformacionais BIGINT, " +
                                      "Eliminado BIT, AutosEliminacao NVARCHAR(MAX))";
                command.ExecuteNonQuery();

                command.CommandText =
                    "INSERT INTO #ItemsID " +
                    "SELECT n.ID, nED.Codigo + '/' + n.Codigo Codigo, nd.Designacao, cota.Cota, nuf.CodigoBarras, dp.InicioAno, dp.InicioMes, " +
                    "dp.InicioDia, dp.InicioAtribuida, dp.FimAno, dp.FimMes, dp.FimDia, dp.FimAtribuida, " +
                    "COALESCE(num.NumUnidadesInformacionais, 0) NumUnidadesInformacionais, nuf.Eliminado, autos.AutosEliminacao " +
                    "FROM #OrderedItems oi " +
                    "INNER JOIN Nivel n ON n.ID = oi.ID " +
                    "INNER JOIN NivelDesignado nd ON nd.ID = n.ID " +
                    "INNER JOIN RelacaoHierarquica rh ON rh.ID = n.ID " +
                    "INNER JOIN Nivel nED ON nED.ID = rh.IDUpper " +
                    "INNER JOIN FRDBase frd ON frd.IDNivel = n.ID " +
                    "LEFT JOIN NivelUnidadeFisica nuf ON nuf.ID = nd.ID " +
                    "LEFT JOIN SFRDUFCota cota ON cota.IDFRDBase = frd.ID " +
                    "LEFT JOIN SFRDDatasProducao dp ON dp.IDFRDBase = frd.ID " +
                    "LEFT JOIN #NumUnidadesInformacionais num ON num.IDNivel = n.ID " +
                    "LEFT JOIN #autosAssociados autos ON autos.ufID = n.ID " +
                    "WHERE seq_id >= @seq_id1 AND seq_id <= @seq_id2 " +
                    "AND n.isDeleted = @isDeleted " +
                    "AND nd.isDeleted = @isDeleted " +
                    "AND rh.isDeleted = @isDeleted " +
                    "AND nED.isDeleted = @isDeleted " +
                    "AND frd.isDeleted = @isDeleted " +
                    "AND (cota.isDeleted IS NULL OR cota.isDeleted = @isDeleted) " +
                    "AND (nuf.isDeleted IS NULL OR nuf.isDeleted = @isDeleted) " +
                    "AND (dp.isDeleted IS NULL OR dp.isDeleted = @isDeleted) " +
                    "ORDER BY seq_id";
                command.Parameters.AddWithValue("@isDeleted", 0);
                command.Parameters.AddWithValue("@seq_id1", (pageNr - 1) * itemsPerPage + 1);
                command.Parameters.AddWithValue("@seq_id2", pageNr * itemsPerPage);
                command.ExecuteNonQuery();

                using (SqlDataAdapter da = new SqlDataAdapter(command))
                {
                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["Nivel"],
                                                                                     "INNER JOIN #ItemsID ON #ItemsID.ID = Nivel.ID");
                    da.Fill(currentDataSet, "Nivel");
                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["FRDBase"],
                                                                                     "INNER JOIN #ItemsID ON #ItemsID.ID = FRDBase.IDNivel");
                    da.Fill(currentDataSet, "FRDBase");

                    // é necessário carregar esta informação para mostrar o código de uma unidade física seleccionada para o caso
                    // só existir uma única na lista
                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["Nivel"],
                                                                                     "INNER JOIN RelacaoHierarquica rh ON rh.IDUpper = Nivel.ID " +
                                                                                     "INNER JOIN #ItemsID ON #ItemsID.ID = rh.ID");
                    da.Fill(currentDataSet, "Nivel");
                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["RelacaoHierarquica"],
                                                                                     "INNER JOIN #ItemsID ON #ItemsID.ID = RelacaoHierarquica.ID");
                    da.Fill(currentDataSet, "RelacaoHierarquica");
                }

                command.CommandText = "SELECT * FROM #ItemsID;";
                command.Parameters.Clear();
                SqlDataReader reader = command.ExecuteReader();

                ArrayList row;
                while (reader.Read())
                {
                    row = new ArrayList();
                    row.Add(reader.GetValue(0));
                    row.Add(reader.GetValue(1));
                    row.Add(reader.GetValue(2));
                    row.Add(reader.GetValue(3));
                    row.Add(reader.GetValue(4));
                    row.Add(reader.GetValue(5));
                    row.Add(reader.GetValue(6));
                    row.Add(reader.GetValue(7));
                    row.Add(reader.GetValue(8));
                    row.Add(reader.GetValue(9));
                    row.Add(reader.GetValue(10));
                    row.Add(reader.GetValue(11));
                    row.Add(reader.GetValue(12));
                    row.Add(reader.GetValue(13));
                    row.Add(reader.IsDBNull(14) ? false : reader.GetValue(14)); // Eliminado: pode ser BDNull
                    row.Add(reader.IsDBNull(15) ? string.Empty : reader.GetValue(15));

                    rows.Add(row);
                }

                reader.Close();
            }

            return(rows);
        }
Пример #8
0
        public override List <PermissoesRule.ObjDig> LoadDataObjDigital(DataSet CurrentDataSet, long IDNivel, long IDTrustee, long IDLoginTrustee, out Dictionary <long, Dictionary <long, byte> > permsImpl, IDbConnection conn)
        {
            var res = new List <PermissoesRule.ObjDig>();

            permsImpl = new Dictionary <long, Dictionary <long, byte> >();

            using (var command = new SqlCommand("", (SqlConnection)conn))
                using (SqlDataAdapter da = new SqlDataAdapter(command))
                {
                    command.CommandText = "CREATE TABLE #temp(ID BIGINT PRIMARY KEY); CREATE TABLE #odsTemp(ID BIGINT PRIMARY KEY, pid NVARCHAR(20), titulo NVARCHAR(768));";
                    command.ExecuteNonQuery();

                    command.CommandText = "INSERT INTO #temp VALUES (@IDNivel)";
                    command.Parameters.AddWithValue("@IDNivel", IDNivel);
                    command.ExecuteNonQuery();

                    command.CommandText = @"
WITH Temp (ID, IDUpper)
AS (
    SELECT rh.ID, rh.IDUpper
    FROM RelacaoHierarquica rh
    WHERE rh.IDUpper = @IDNivel AND rh.isDeleted = @isDeleted
    
    UNION ALL
	
    SELECT rh.ID, rh.IDUpper
    FROM RelacaoHierarquica rh
		INNER JOIN Temp ON Temp.ID = rh.IDUpper
    WHERE rh.isDeleted = @isDeleted
)
INSERT INTO #temp
SELECT Temp.ID 
FROM Temp";
                    command.Parameters.AddWithValue("@isDeleted", 0);
                    command.ExecuteNonQuery();

                    PermissoesRule.Current.GetEffectiveReadPermissions(" FROM #temp ", IDLoginTrustee, conn);

                    command.CommandText = "DELETE FROM #temp WHERE ID IN (SELECT IDNivel FROM #effective WHERE Ler = @Ler OR Ler IS NULL)";
                    command.Parameters.AddWithValue("@Ler", 0);
                    command.ExecuteNonQuery();

                    PermissoesRule.Current.DropEffectivePermissionsTempTable(conn);

                    command.CommandText = @"
INSERT INTO #odsTemp
SELECT ID, pid, Titulo
FROM (
SELECT od.ID, od.pid, od.Titulo 
FROM #temp T
INNER JOIN FRDBase frd ON frd.IDNivel = T.ID AND frd.IDTipoFRDBase = @IDTipoFRDBase AND frd.isDeleted = @isDeleted
INNER JOIN SFRDImagem img ON img.IDFRDBase = frd.ID AND img.Tipo = @imgTipo AND img.isDeleted = @isDeleted
INNER JOIN SFRDImagemObjetoDigital imgOD ON imgOD.IDFRDBase = img.IDFRDBase AND imgOD.idx = img.idx AND imgOD.isDeleted = @isDeleted
INNER JOIN ObjetoDigital od ON od.ID = imgOD.IDObjetoDigital AND od.isDeleted = @isDeleted
UNION ALL
SELECT odSimples.ID, odSimples.pid, odSimples.Titulo
FROM #temp T
INNER JOIN FRDBase frd ON frd.IDNivel = T.ID AND frd.IDTipoFRDBase = @IDTipoFRDBase AND frd.isDeleted = @isDeleted
INNER JOIN SFRDImagem img ON img.IDFRDBase = frd.ID AND img.Tipo = @imgTipo AND img.isDeleted = @isDeleted
INNER JOIN SFRDImagemObjetoDigital imgOD ON imgOD.IDFRDBase = img.IDFRDBase AND imgOD.idx = img.idx AND imgOD.isDeleted = @isDeleted
INNER JOIN ObjetoDigital od ON od.ID = imgOD.IDObjetoDigital AND od.isDeleted = @isDeleted
INNER JOIN ObjetoDigitalRelacaoHierarquica odrh ON odrh.IDUpper = od.ID AND odrh.isDeleted = @isDeleted
INNER JOIN ObjetoDigital odSimples ON odSimples.ID = odrh.ID AND odSimples.isDeleted = @isDeleted
) ods";
                    command.Parameters.AddWithValue("@IDTipoFRDBase", 1);
                    command.Parameters.AddWithValue("@imgTipo", "Fedora");
                    command.ExecuteNonQuery();

                    PermissoesRule.Current.GetODEffectivePermissions(" FROM #odsTemp ", IDLoginTrustee, conn);

                    command.CommandText = "DELETE FROM #odsTemp WHERE ID IN (SELECT DISTINCT ID FROM #effective WHERE IsGrant = @IsGrant OR IsGrant IS NULL)";
                    command.Parameters.AddWithValue("@IsGrant", 0);
                    command.ExecuteNonQuery();

                    PermissoesRule.Current.DropEffectivePermissionsTempTable(conn);

                    command.CommandText = "SELECT * FROM #odsTemp";
                    var reader = command.ExecuteReader();

                    var od = new PermissoesRule.ObjDig();
                    while (reader.Read())
                    {
                        od        = new PermissoesRule.ObjDig();
                        od.ID     = reader.GetInt64(0);
                        od.pid    = reader.GetString(1);
                        od.titulo = reader.GetString(2);
                        res.Add(od);
                    }
                    reader.Close();

                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["ObjetoDigital"],
                                                                                     "INNER JOIN #odsTemp ON #odsTemp.ID = ObjetoDigital.ID ");
                    da.Fill(CurrentDataSet, "ObjetoDigital");

                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["TrusteeUser"]);
                    da.Fill(CurrentDataSet, "TrusteeUser");

                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["TrusteeGroup"]);
                    da.Fill(CurrentDataSet, "TrusteeGroup");

                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["UserGroups"]);
                    da.Fill(CurrentDataSet, "UserGroups");

                    // carregar permissões
                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(CurrentDataSet.Tables["TrusteeObjetoDigitalPrivilege"],
                                                                                     "INNER JOIN #odsTemp ON #odsTemp.ID = TrusteeObjetoDigitalPrivilege.IDObjetoDigital " +
                                                                                     "WHERE TrusteeObjetoDigitalPrivilege.IDTrustee = " + IDTrustee);
                    da.Fill(CurrentDataSet, "TrusteeObjetoDigitalPrivilege");

                    command.CommandText = "DROP TABLE #temp; DROP TABLE #odsTemp; ";
                    command.ExecuteNonQuery();
                }
            return(res);
        }
Пример #9
0
        public override List <DocumentoMovimentado> GetDocumentos(long IDReq, string filter, DataSet currentDataSet, IDbConnection conn)
        {
            List <DocumentoMovimentado> ret = new List <DocumentoMovimentado>();

            using (SqlCommand command = new SqlCommand("", (SqlConnection)conn))
            {
                command.CommandText = "CREATE TABLE #NiveisTemp (IDNivel BIGINT); " +
                                      "CREATE TABLE #SPParametersNiveis (IDNivel BIGINT); " +
                                      "CREATE TABLE #SPResultsCodigos (IDNivel BIGINT, CodigoCompleto NVARCHAR(300));";
                command.ExecuteNonQuery();

                command.CommandText =
                    "INSERT INTO #NiveisTemp " +
                    "SELECT dr.IDNivel " +
                    "FROM DocumentosMovimentados dr " +
                    "WHERE dr.IDMovimento = @IDReq AND dr.isDeleted=@isDeleted";
                command.Parameters.AddWithValue("@IDReq", IDReq);
                command.Parameters.AddWithValue("@isDeleted", 0);
                command.ExecuteNonQuery();

                using (SqlDataAdapter da = new SqlDataAdapter(command))
                {
                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["Nivel"],
                                                                                     "INNER JOIN #NiveisTemp ON #NiveisTemp.IDNivel = Nivel.ID");
                    da.Fill(currentDataSet, "Nivel");

                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["DocumentosMovimentados"],
                                                                                     "WHERE IDMovimento = @IDReq");
                    da.Fill(currentDataSet, "DocumentosMovimentados");
                }

                command.CommandText = "INSERT INTO #SPParametersNiveis " +
                                      "SELECT IDNivel " +
                                      "FROM #NiveisTemp " +
                                      "EXEC sp_getCodigosCompletosNiveis ";
                command.ExecuteNonQuery();

                command.CommandText =
                    "SELECT DISTINCT nt.IDNivel, nd.Designacao, tnr.Designacao, dp.InicioAno, dp.InicioMes, dp.InicioDia, dp.FimAno, dp.FimMes, dp.FimDia, codigo.CodigoCompleto " +
                    "FROM #NiveisTemp nt " +
                    "INNER JOIN NivelDesignado nd ON nt.IDNivel = nd.ID AND nd.isDeleted = @isDeleted " +
                    "INNER JOIN RelacaoHierarquica rh ON nt.IDNivel = rh.ID AND rh.isDeleted = @isDeleted " +
                    "INNER JOIN TipoNivelRelacionado tnr ON rh.IDTipoNivelRelacionado = tnr.ID AND tnr.isDeleted = @isDeleted " +
                    "INNER JOIN FRDBase frd ON frd.IDNivel = nt.IDNivel AND frd.isDeleted = @isDeleted " +
                    "INNER JOIN ( " +
                    "SELECT #SPResultsCodigos.IDNivel, MIN(#SPResultsCodigos.CodigoCompleto) CodigoCompleto " +
                    "FROM #SPResultsCodigos " +
                    "INNER JOIN #NiveisTemp p ON p.IDNivel = #SPResultsCodigos.IDNivel " +
                    "GROUP BY #SPResultsCodigos.IDNivel " +
                    ") codigo ON codigo.IDNivel = nt.IDNivel " +
                    "LEFT JOIN SFRDDatasProducao dp ON dp.IDFRDBase = frd.ID AND dp.isDeleted = @isDeleted ";

                if (filter != string.Empty)
                {
                    command.Parameters.AddWithValue("@ndDesignacao", filter);
                    command.CommandText += "WHERE nd.Designacao=@ndDesignacao";
                }

                SqlDataReader reader = command.ExecuteReader();
                while (reader.Read())
                {
                    DocumentoMovimentado dm = new DocumentoMovimentado();
                    dm.IDNivel        = System.Convert.ToInt64(reader.GetValue(0));
                    dm.Designacao     = reader.GetValue(1).ToString();
                    dm.NivelDescricao = reader.GetValue(2).ToString();

                    dm.AnoInicio = reader.GetValue(3).ToString();
                    dm.MesInicio = reader.GetValue(4).ToString();
                    dm.DiaInicio = reader.GetValue(5).ToString();

                    dm.AnoFim = reader.GetValue(6).ToString();
                    dm.MesFim = reader.GetValue(7).ToString();
                    dm.DiaFim = reader.GetValue(8).ToString();

                    dm.CodigoCompleto = reader.GetValue(9).ToString();

                    ret.Add(dm);
                }

                reader.Close();

                command.CommandText =
                    "DROP TABLE #NiveisTemp " +
                    "DROP TABLE #SPParametersNiveis " +
                    "DROP TABLE #SPResultsCodigos ";

                command.ExecuteNonQuery();
            }

            return(ret);
        }
Пример #10
0
        public override List <AutoEliminacao_UFsEliminadas> LoadUnidadesFisicasAvaliadas(DataSet currentDataSet, long aeID, IDbConnection conn)
        {
            this.LoadAutoEliminacaoUFsID(currentDataSet, aeID, (SqlConnection)conn);

            List <AutoEliminacao_UFsEliminadas> rows = new List <AutoEliminacao_UFsEliminadas>();

            using (SqlCommand command = SqlSyntax.CreateSelectCommandWithNoDeletedRowsParam((SqlConnection)conn))
                using (SqlDataAdapter da = new SqlDataAdapter(command))
                {
                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["Nivel"],
                                                                                     "INNER JOIN #NiveisTemp ON #NiveisTemp.IDNivel = Nivel.ID ");
                    da.Fill(currentDataSet, "Nivel");

                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["NivelDesignado"],
                                                                                     "INNER JOIN #NiveisTemp ON #NiveisTemp.IDNivel = NivelDesignado.ID ");
                    da.Fill(currentDataSet, "NivelDesignado");

                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["LocalConsulta"]);
                    da.Fill(currentDataSet, "LocalConsulta");

                    da.SelectCommand.CommandText = SqlSyntax.CreateSelectCommandText(currentDataSet.Tables["NivelUnidadeFisica"],
                                                                                     "INNER JOIN #NiveisTemp ON #NiveisTemp.IDNivel = NivelUnidadeFisica.ID ");
                    da.Fill(currentDataSet, "NivelUnidadeFisica");

                    command.CommandText =
                        "SELECT temp.IDNivel, nEDs.Codigo + '/' + nUFs.Codigo Codigo, ndUFs.Designacao, COALESCE(nuf.Eliminado, 0), df.MedidaAltura, df.MedidaLargura, df.MedidaProfundidade, tp.Designacao " +
                        "FROM #NiveisTemp temp " +
                        "INNER JOIN Nivel nUFs ON nUFs.ID = temp.IDNivel AND nUFs.isDeleted = @isDeleted " +
                        "INNER JOIN NivelDesignado ndUFs ON ndUFs.ID = temp.IDNivel AND ndUFs.isDeleted = @isDeleted  " +
                        "INNER JOIN RelacaoHierarquica rh ON rh.ID = temp.IDNivel AND rh.isDeleted = @isDeleted  " +
                        "INNER JOIN Nivel nEDs ON nEDs.ID = rh.IDUpper AND nEDs.isDeleted = @isDeleted " +
                        "LEFT JOIN NivelUnidadeFisica nuf ON nuf.ID = temp.IDNivel AND nuf.isDeleted = @isDeleted " +
                        "LEFT JOIN FRDBase frd ON frd.IDNivel = nUFs.ID AND frd.isDeleted = @isDeleted " +
                        "LEFT JOIN SFRDUFDescricaoFisica df ON df.IDFRDBase = frd.ID AND df.isDeleted = @isDeleted " +
                        "LEFT JOIN TipoMedida tp ON tp.ID = df.IDTipoMedida AND tp.isDeleted = @isDeleted";

                    SqlDataReader reader = command.ExecuteReader();
                    AutoEliminacao_UFsEliminadas ae;
                    while (reader.Read())
                    {
                        ae              = new AutoEliminacao_UFsEliminadas();
                        ae.IDNivel      = reader.GetInt64(0);                    // IDNivel
                        ae.codigo       = reader.GetString(1);                   // Codigo
                        ae.designacao   = reader.GetString(2);                   // Designacao
                        ae.paraEliminar = Convert.ToBoolean(reader.GetValue(3)); // Eliminar
                        if (reader.GetValue(4) != DBNull.Value)
                        {
                            ae.altura = System.Convert.ToDecimal(reader.GetValue(4)); // Altura
                        }
                        if (reader.GetValue(5) != DBNull.Value)
                        {
                            ae.largura = System.Convert.ToDecimal(reader.GetValue(5)); // Largura
                        }
                        if (reader.GetValue(6) != DBNull.Value)
                        {
                            ae.profundidade = System.Convert.ToDecimal(reader.GetValue(6)); // Profundidade
                        }
                        ae.tipoMedida = reader.GetValue(7).ToString();                      // TipoMedida

                        rows.Add(ae);
                    }
                    reader.Close();

                    command.CommandText = "DROP TABLE #NiveisTemp; ";
                    command.ExecuteNonQuery();
                }

            return(rows);
        }