/// <summary> /// ObterDadosComposicaoIndice - busca dados de composição de índice /// </summary> /// <returns></returns> public List <ComposicaoIndice.ItemComposicaoIndice> ObterDadosComposicaoIndice() { List <ComposicaoIndice.ItemComposicaoIndice> listaComposicaoIndice = new List <ComposicaoIndice.ItemComposicaoIndice>(); SqlConnection conn = null; try { conn = new SqlConnection(ConfigurationManager.AppSettings["OMS"]); conn.Open(); SqlCommand Command = new SqlCommand(); Command.CommandType = CommandType.StoredProcedure; Command.Connection = conn; Command.CommandText = "prc_TB_COMPOSICAO_INDICE_sel"; SqlDataReader dtDados = Command.ExecuteReader(); if (dtDados.HasRows) { while (dtDados.Read()) { ComposicaoIndice.ItemComposicaoIndice item = new ComposicaoIndice.ItemComposicaoIndice(); item.indice = dtDados.GetSqlString(0).Value; item.papel = dtDados.GetSqlString(1).Value; item.qtdeTeorica = dtDados.GetSqlDecimal(2).ToDouble(); item.fechamento = dtDados.GetSqlDecimal(3).ToDouble(); ObterCotacaoAtual(item); listaComposicaoIndice.Add(item); } } } catch (SqlException ex) { logger.Error("ObterDadosComposicaoIndice(): " + ex.Message + "-" + ex.ErrorCode, ex); } catch (Exception ex) { logger.Error("ObterDadosComposicaoIndice(): " + ex.Message, ex); } finally { if (conn != null && conn.State == ConnectionState.Open) { conn.Close(); conn.Dispose(); } } return(listaComposicaoIndice); }
/// <summary> /// ObterCotacaoAtual - busca cotação atual de um papel. /// </summary> /// <returns></returns> public void ObterCotacaoAtual(ComposicaoIndice.ItemComposicaoIndice item) { SqlConnection conn = null; string cmd = ""; try { cmd = "SELECT vl_ultima, dt_negocio FROM tb_ativo_cotacao "; cmd += " WHERE id_ativo ='" + item.papel + "'"; conn = new SqlConnection(ConfigurationManager.AppSettings["DirectTradeRisco"]); conn.Open(); SqlCommand command = new SqlCommand(cmd, conn); SqlDataReader dtDados = command.ExecuteReader(); if (dtDados.HasRows) { if (dtDados.Read()) { item.valor = dtDados.IsDBNull(0) ? 0 : dtDados.GetSqlDecimal(0).ToDouble(); item.dataCotacao = dtDados.IsDBNull(1) ? DateTime.Now : dtDados.GetDateTime(1); } } } catch (SqlException ex) { logger.Error("ObterCotacaoAtual(): " + ex.Message + "-" + ex.ErrorCode, ex); } catch (Exception ex) { logger.Error("ObterCotacaoAtual(): " + ex.Message, ex); } finally { if (conn != null && conn.State == ConnectionState.Open) { conn.Close(); conn.Dispose(); } } }