private bool ProcessarQuantidadesTeoricas(string indice, string arquivo)
        {
            try
            {
                Dictionary <string, double> listaQtdTeoricas = new Dictionary <string, double>();

                string       linha;
                StreamReader streamReader = new StreamReader(arquivo);
                while ((linha = streamReader.ReadLine()) != null)
                {
                    if (linha != null && linha.Trim().Length > 0)
                    {
                        string[] parametros = linha.Split('\t');

                        string ativo = parametros[0].Trim();

                        double qtdTeorica;
                        if (!double.TryParse(parametros[1].Replace(',', '.'), numberStyles, ciUS, out qtdTeorica))
                        {
                            qtdTeorica = 0;
                        }

                        if (ativo.Length > 0 && qtdTeorica > 0)
                        {
                            listaQtdTeoricas.Add(ativo, qtdTeorica);
                        }
                    }
                }
                streamReader.Close();

                if (listaQtdTeoricas.Count == 0)
                {
                    logger.Error("Não há linhas válidas no arquivo lido!");
                    return(false);
                }

                logger.Info("Atualizando Quantidades Teoricas");

                DCotacoes _DCotacoes = new DCotacoes();

                logger.Info("Ativos lidos e tratados do arquivo: " + listaQtdTeoricas.Count);
                foreach (KeyValuePair <string, double> item in listaQtdTeoricas)
                {
                    logger.Info("Gravando ComposicaoIndice Ativo[" + item.Key + "] QtdTeorica[" + item.Value + "]");

                    IndiceGradual.ItemComposicaoIndice itemComposicaoIndice = new IndiceGradual.ItemComposicaoIndice();
                    itemComposicaoIndice.ativo       = item.Key;
                    itemComposicaoIndice.qtdeTeorica = item.Value;
                    itemComposicaoIndice.dataCotacao = DateTime.Now;

                    _DCotacoes.AtualizarComposicaoIndiceGradual(indice, itemComposicaoIndice, true);
                }
            }
            catch (Exception ex)
            {
                logger.Error("Falha em ProcessarQuantidadesTeoricas(): " + ex.Message);
                return(false);
            }
            return(true);
        }
Example #2
0
        /// <summary>
        /// AtualizarComposicaoIndiceGradual - atualiza item na tabela tbIndiceGradual.
        /// </summary>
        /// <returns></returns>
        public void AtualizarComposicaoIndiceGradual(string indice, IndiceGradual.ItemComposicaoIndice item, bool atualizarQtdTeorica)
        {
            SqlConnection conn = null;

            try
            {
                conn = new SqlConnection(ConfigurationManager.AppSettings["OMSProducao"]);
                conn.Open();

                SqlCommand Command = new SqlCommand();
                Command.CommandType = CommandType.StoredProcedure;
                Command.Connection  = conn;
                Command.CommandText = "prc_tbIndiceGradual_upd";

                Command.Parameters.AddWithValue("@dsIndice", indice);
                Command.Parameters.AddWithValue("@idAtivo", item.ativo);
                Command.Parameters.AddWithValue("@Cotacao", item.cotacao);
                Command.Parameters.AddWithValue("@Variacao", item.variacao);
                Command.Parameters.AddWithValue("@QtdeAjustada", item.qtdeAjustada);
                if (atualizarQtdTeorica)
                {
                    Command.Parameters.AddWithValue("@QtdeTeorica", item.qtdeTeorica);
                }
                else
                {
                    Command.Parameters.AddWithValue("@QtdeTeorica", null);
                }
                Command.Parameters.AddWithValue("@dtCotacao", item.dataCotacao);

                Command.ExecuteNonQuery();
                Command.Dispose();
            }

            catch (SqlException ex)
            {
                logger.Error("AtualizarComposicaoIndiceGradual(): " + ex.Message + "-" + ex.ErrorCode, ex);
            }
            catch (Exception ex)
            {
                logger.Error("AtualizarComposicaoIndiceGradual(): " + ex.Message, ex);
            }
            finally
            {
                if (conn != null && conn.State == ConnectionState.Open)
                {
                    conn.Close();
                    conn.Dispose();
                }
            }
        }
Example #3
0
        /// <summary>
        /// ObterListaIndicesGradual - busca lista de índices Gradual
        /// </summary>
        /// <returns></returns>
        public List <IndiceGradual.ItemComposicaoIndice> ObterListaComposicaoIndiceGradual(int idIndice)
        {
            List <IndiceGradual.ItemComposicaoIndice> listaComposicaoIndice = new List <IndiceGradual.ItemComposicaoIndice>();
            SqlConnection conn = null;

            try
            {
                conn = new SqlConnection(ConfigurationManager.AppSettings["OMSProducao"]);
                conn.Open();

                SqlCommand Command = new SqlCommand();
                Command.CommandType = CommandType.StoredProcedure;
                Command.Connection  = conn;
                Command.CommandText = "prc_tbIndiceGradual_lst";

                Command.Parameters.AddWithValue("@idIndice", idIndice);

                SqlDataReader dtDados = Command.ExecuteReader();

                if (dtDados.HasRows)
                {
                    while (dtDados.Read())
                    {
                        IndiceGradual.ItemComposicaoIndice item = new IndiceGradual.ItemComposicaoIndice();
                        item.ativo       = dtDados.GetSqlString(0).Value;
                        item.qtdeTeorica = dtDados.IsDBNull(1) ? 0 : dtDados.GetSqlDecimal(1).ToDouble();
                        item.dataCotacao = dtDados.IsDBNull(2) ? new DateTime(1970, 1, 1) : dtDados.GetDateTime(2);
                        listaComposicaoIndice.Add(item);
                    }
                }
            }
            catch (SqlException ex)
            {
                logger.Error("ObterListaComposicaoIndiceGradual(): " + ex.Message + "-" + ex.ErrorCode, ex);
            }
            catch (Exception ex)
            {
                logger.Error("ObterListaComposicaoIndiceGradual(): " + ex.Message, ex);
            }
            finally
            {
                if (conn != null && conn.State == ConnectionState.Open)
                {
                    conn.Close();
                    conn.Dispose();
                }
            }
            return(listaComposicaoIndice);
        }