Пример #1
0
        public void ImportacaoAvulsaANBIMA()
        {
            try
            {
                gLogger.Debug("Obtendo relacao de arquivos para serem importados");

                ImportacaoDbLib lImpDB = new ImportacaoDbLib();

                List <ProdutosInfo> lProdutos = lImpDB.PesquisarProduto();

                List <ProdutosInfo> ListaProduto = lImpDB.ListarProduto();

                Dictionary <string, int> ListaIdProdutoAnbima = new Dictionary <string, int>();

                ListaProduto.ForEach(produto =>
                {
                    if (!ListaIdProdutoAnbima.ContainsKey(produto.IdCodigoAnbima))
                    {
                        ListaIdProdutoAnbima.Add(produto.IdCodigoAnbima, produto.IdProduto);
                    }
                });

                this.gListaCodigoAnbima.Clear();

                lProdutos.ForEach(produto =>
                {
                    gLogger.InfoFormat("Fundo encontrado: [{0} - {1}] ", produto.IdCodigoAnbima, produto.NomeProduto);

                    gListaCodigoAnbima.Add(produto.IdCodigoAnbima);
                });

                LeituraArquivos lLeitura = new LeituraArquivos();

                //List<FundosDiaInfo> lFundosDia = lLeitura.LeArquivoFundosDiaAvulsa();

                List <FundosMesInfo> lFundosMes = lLeitura.LeArquivoFundosMesAvulsa();

                //List<FundosMovCotaInfo> lFundosMovCota = lLeitura.LeArquivoFundosMovCotaAvulsa();

                //List<TaxaAdministracaoInfo> lFundosTaxaAdm = lLeitura.LeArquivoFundosTaxaAdm();

                //lFundosDia.ForEach(
                //    fundo =>
                //    {
                //        if (gListaCodigoAnbima.Count > 0 && gListaCodigoAnbima.Contains(fundo.CodigoFundo))
                //        {
                //            lImpDB.SalvarRentabilidadeDiaria(fundo);

                //            gLogger.InfoFormat("Rentabilidade Dia -> [{0}] importado com sucesso", fundo.CodigoFundo);
                //        }
                //    });

                lFundosMes.ForEach(
                    fundo =>
                {
                    if (gListaCodigoAnbima.Count > 0 && gListaCodigoAnbima.Contains(fundo.CodigoFundo))
                    {
                        lImpDB.SalvarRentabilidadeMes(fundo);

                        gLogger.InfoFormat("Rentabiliadde Mês -> [{0}] importado com sucesso", fundo.CodigoFundo);
                    }
                });

                //lFundosMovCota.ForEach(
                //    fundo =>
                //    {
                //        if (gListaCodigoAnbima.Count > 0 )
                //        {
                //            if (ListaIdProdutoAnbima.ContainsKey(fundo.CodigoFundo))
                //            {
                //                fundo.IdProduto = ListaIdProdutoAnbima[fundo.CodigoFundo];

                //                lImpDB.SalvarProdutoMovimento(fundo);

                //                gLogger.InfoFormat("Fundos Mov Cota -> [{0}] importado com sucesso", fundo.CodigoFundo);
                //            }
                //        }
                //    });
            }
            catch (Exception ex)
            {
                gLogger.Error("Ocorreu um erro ao acessar o metodo ImportacaoAvulsaANBIMA.", ex);
            }
        }
Пример #2
0
        public void ThreadImportacaoAnbima(object sender, bool signed)
        {
            DateTime lNow = DateTime.Now;

            List <string> listHorarios = ListaHorarios(this.HorariosImportacaoRentabilidade);

            try
            {
                if (listHorarios.Contains(lNow.ToString("HH:mm")))
                {
                    gLogger.Debug("Obtendo relacao de arquivos para serem importados");

                    SharpSSH lSftp = new SharpSSH();

                    bool lTransferiu = lSftp.TranferirArquivo();

                    if (lTransferiu)
                    {
                        ImportacaoDbLib lImpDB = new ImportacaoDbLib();

                        List <ProdutosInfo> lProdutos = lImpDB.PesquisarProduto();

                        List <ProdutosInfo> ListaProduto = lImpDB.ListarProduto();

                        Dictionary <string, int> ListaIdProdutoAnbima = new Dictionary <string, int>();

                        ListaProduto.ForEach(produto => {
                            if (!ListaIdProdutoAnbima.ContainsKey(produto.IdCodigoAnbima))
                            {
                                ListaIdProdutoAnbima.Add(produto.IdCodigoAnbima, produto.IdProduto);
                            }
                        });

                        this.gListaCodigoAnbima.Clear();

                        lProdutos.ForEach(produto =>
                        {
                            gLogger.InfoFormat("Fundo encontrado: [{0} - {1}] ", produto.IdCodigoAnbima, produto.NomeProduto);

                            gListaCodigoAnbima.Add(produto.IdCodigoAnbima);
                        });

                        LeituraArquivos      lLeitura   = new LeituraArquivos();
                        List <FundosDiaInfo> lFundosDia = lLeitura.LeArquivoFundosDia();
                        List <FundosMesInfo> lFundosMes = lLeitura.LeArquivoFundosMes();
                        //List<FundosMovCotaInfo> lFundosMovCota         = lLeitura.LeArquivoFundosMovCota();
                        List <TaxaAdministracaoInfo>    lTaxaAdministracao = lLeitura.LeArquivoFundosTaxaAdm();
                        List <ANBIMAIndicadoresMesInfo> lIndicadoresMes    = lLeitura.LerArquivoIndcadoresMes();
                        List <FundosInfo> lCadFundos = lLeitura.LeArquivoCadFundos();

                        lIndicadoresMes.ForEach(
                            indicador => {
                            lImpDB.SalvarIndicadoresMes(indicador);
                            gLogger.InfoFormat("Indicador  -> [{0}] importado com sucesso", indicador.CodigoIndicador);
                        });

                        lTaxaAdministracao.ForEach(
                            taxa => {
                            if (gListaCodigoAnbima.Count > 0 && gListaCodigoAnbima.Contains(taxa.CodigoFundo))
                            {
                                lImpDB.SalvarTaxaAdministrador(taxa);

                                gLogger.InfoFormat("Taxa administracao  -> [{0}] importada com sucesso", taxa.CodigoFundo);
                            }
                        }
                            );

                        lFundosDia.ForEach(
                            fundo =>
                        {
                            if (gListaCodigoAnbima.Count > 0 && gListaCodigoAnbima.Contains(fundo.CodigoFundo))
                            {
                                lImpDB.SalvarRentabilidadeDiaria(fundo);

                                gLogger.InfoFormat("Rentabilidade Dia -> [{0}] importado com sucesso", fundo.CodigoFundo);
                            }
                        });

                        lFundosMes.ForEach(
                            fundo =>
                        {
                            if (gListaCodigoAnbima.Count > 0 && gListaCodigoAnbima.Contains(fundo.CodigoFundo))
                            {
                                lImpDB.SalvarRentabilidadeMes(fundo);

                                gLogger.InfoFormat("Rentabiliadde Mês -> [{0}] importado com sucesso", fundo.CodigoFundo);
                            }
                        });
                        lCadFundos.ForEach(
                            fundo =>
                        {
                            lImpDB.SalvarCadastroFundos(fundo);

                            gLogger.InfoFormat("Cadastro do fundo -> [{0}] importado com sucesso", fundo.CodigoFundo);
                        });
                        //lFundosMovCota.ForEach(
                        //    fundo =>
                        //    {
                        //        if (gListaCodigoAnbima.Count > 0 && gListaCodigoAnbima.Contains(fundo.CodigoFundo))
                        //       // if (gListaCodigoAnbima.Count > 0)
                        //        {
                        //            if (ListaIdProdutoAnbima.ContainsKey(fundo.CodigoFundo))
                        //            {
                        //                fundo.IdProduto = ListaIdProdutoAnbima[fundo.CodigoFundo];

                        //                lImpDB.SalvarProdutoMovimento(fundo);

                        //                gLogger.InfoFormat("Fundos Mov Cota -> [{0}] importado com sucesso", fundo.CodigoFundo);
                        //            }
                        //        }
                        //    });
                    }
                }
            }
            catch (Exception ex)
            {
                gLogger.Error("Ocorreu um erro ao acessar o método ThreadImportacaoAnbima:" + ex.Message, ex);
            }

            //Thread.Sleep(250);
        }