예제 #1
0
        internal static string PegarResultadoItemFilaPorRequisitante(OracleConnection conn, int id, string tipo)
        {
            var schema = CarUtils.GetEsquemaInstitucional();
            var item   = new ItemFila();

            try
            {
                using (
                    var cmd =
                        new OracleCommand(
                            "SELECT * FROM " + schema + ".TAB_SCHEDULER_FILA WHERE requisitante = :id and tipo = :tipo",
                            conn))
                {
                    cmd.Parameters.Add(new OracleParameter("id", id));
                    cmd.Parameters.Add(new OracleParameter("tipo", tipo));

                    using (var dr = cmd.ExecuteReader())
                    {
                        if (dr.Read())
                        {
                            return(Convert.ToString(dr["resultado"]));
                        }
                    }
                }
            }
            catch (Exception exception)
            {
                Log.Error("Erro ao conectar ao Banco de dados:" + exception.Message, exception);
            }

            return(string.Empty);
        }
예제 #2
0
        public static int InserirControleSICAR(OracleConnection conn, ItemFila itemFila, string arquivoCar)
        {
            var schema = CarUtils.GetEsquemaInstitucional();

            var requisicao = JsonConvert.DeserializeObject <RequisicaoJobCar>(itemFila.Requisicao);

            var tid = Blocos.Data.GerenciadorTransacao.ObterIDAtual();

            var sqlBuilder = new StringBuilder();

            sqlBuilder.Append("INSERT INTO " + schema + ".TAB_CONTROLE_SICAR ");
            sqlBuilder.Append("(id,tid,empreendimento,empreendimento_tid,solicitacao_car,solicitacao_car_tid,situacao_envio,");
            sqlBuilder.Append("data_gerado,arquivo,solicitacao_car_esquema)");
            sqlBuilder.Append(" VALUES ");
            sqlBuilder.Append("(" + schema + ".SEQ_TAB_CONTROLE_SICAR.nextval,:tid,:empreendimento,:empreendimento_tid,");
            sqlBuilder.Append(
                ":solicitacao_car,:solicitacao_car_tid,:situacao_envio,CURRENT_TIMESTAMP,:arquivo,:solicitacao_car_esquema) RETURNING id INTO :novo_id");

            var novoId = 0;

            try
            {
                using (var cmd = new OracleCommand(sqlBuilder.ToString(), conn))
                {
                    cmd.Parameters.Add(new OracleParameter("tid", tid));
                    cmd.Parameters.Add(new OracleParameter("empreendimento", requisicao.empreendimento));
                    cmd.Parameters.Add(new OracleParameter("empreendimento_tid", requisicao.empreendimento_tid));
                    cmd.Parameters.Add(new OracleParameter("solicitacao_car", requisicao.solicitacao_car));
                    cmd.Parameters.Add(new OracleParameter("solicitacao_car_tid", requisicao.solicitacao_car_tid));
                    cmd.Parameters.Add(new OracleParameter("situacao_envio", SITUACAO_ENVIO_ARQUIVO_GERADO));
                    cmd.Parameters.Add(new OracleParameter("arquivo", arquivoCar));
                    cmd.Parameters.Add(new OracleParameter("solicitacao_car_esquema",
                                                           ((requisicao.origem == RequisicaoJobCar.INSTITUCIONAL ? 1 : 2))));
                    cmd.Parameters.Add(new OracleParameter("novo_id", OracleDbType.Decimal, ParameterDirection.ReturnValue));

                    cmd.ExecuteNonQuery();

                    novoId = Convert.ToInt32(cmd.Parameters["novo_id"].Value.ToString());
                }
            }
            catch (Exception exception)
            {
                Log.Error("Erro ao conectar ao Banco de dados:" + exception.Message, exception);
            }

            //Inserir no Histórico
            InserirHistoricoControleCar(conn, requisicao, tid, null);

            return(novoId);
        }
예제 #3
0
        internal static ItemFila PegarProximoItemFila(OracleConnection conn, string tipo)
        {
            lock (lockObject)
            {
                var      schema = CarUtils.GetEsquemaInstitucional();
                ItemFila item   = null;

                try
                {
                    using (
                        var cmd =
                            new OracleCommand(@"update " + schema + @".tab_scheduler_fila set data_criacao = current_timestamp
								where id = (select min(id) from "                                 + schema + @".tab_scheduler_fila where tipo = :tipo and data_criacao is null)
								returning id, requisitante, requisicao, empreendimento 
								into :id, :requisitante, :requisicao, :empreendimento"                                , conn))
                    {
                        cmd.Parameters.Add(new OracleParameter("tipo", tipo));
                        OracleParameter paramId           = cmd.Parameters.Add(new OracleParameter("id", OracleDbType.Int32, System.Data.ParameterDirection.Output));
                        OracleParameter paramRequisitante = cmd.Parameters.Add(new OracleParameter("requisitante", OracleDbType.Int32, System.Data.ParameterDirection.Output));
                        OracleParameter paramRequisicao   = cmd.Parameters.Add(new OracleParameter("requisicao", OracleDbType.Varchar2, 500)
                        {
                            Direction = System.Data.ParameterDirection.Output
                        });
                        OracleParameter paramEmpreendimento = cmd.Parameters.Add(new OracleParameter("empreendimento", OracleDbType.Int32, System.Data.ParameterDirection.Output));

                        if (cmd.ExecuteNonQuery() > 0)
                        {
                            item = new ItemFila();

                            item.Id             = Convert.ToInt32(paramId.Value.ToString());
                            item.Requisitante   = Convert.ToInt32(paramRequisitante.Value.ToString());
                            item.Empreendimento = Convert.ToInt32(paramEmpreendimento.Value.ToString());
                            item.Requisicao     = paramRequisicao.Value.ToString();
                        }
                    }
                }
                catch (Exception exception)
                {
                    Log.Error("Erro ao conectar ao Banco de dados:" + exception.Message, exception);
                }

                return(item);
            }
        }
예제 #4
0
        internal static ItemFila PegarItemFilaPorId(OracleConnection conn, int id)
        {
            var schema = CarUtils.GetEsquemaInstitucional();
            var item   = new ItemFila();

            try
            {
                using (
                    var cmd =
                        new OracleCommand(
                            "SELECT * FROM " + schema + ".TAB_SCHEDULER_FILA WHERE id = :id",
                            conn))
                {
                    cmd.Parameters.Add(new OracleParameter("id", id));

                    using (var dr = cmd.ExecuteReader())
                    {
                        while (dr.Read())
                        {
                            item = new ItemFila
                            {
                                Id             = Convert.ToInt32(dr["id"]),
                                Requisitante   = Convert.ToInt32(dr["requisitante"]),
                                Empreendimento = Convert.ToInt32(dr["empreendimento"]),
                                Requisicao     = Convert.ToString(dr["requisicao"])
                            };
                        }
                    }
                }
            }
            catch (Exception exception)
            {
                Log.Error("Erro ao conectar ao Banco de dados:" + exception.Message, exception);
            }

            return(item);
        }