예제 #1
0
        private void metroTileIniciar_Click(object sender, EventArgs e)
        {
            if (backgroundWorker1.IsBusy)
            {
                return;
            }

            if (!validaEntradaDoUsuario("monitor"))
            {
                MessageBox.Show("Favor preencher todos os campos antes de iniciar");
                return;
            }


            entradaUsuario                  = new EntradaUsuario();
            usCulture                       = new CultureInfo(System.Configuration.ConfigurationManager.AppSettings["Culture"]);
            entradaUsuario.ativo            = metroTextBoxAtivo.Text;
            entradaUsuario.referenciaVenda  = Convert.ToDecimal(metroTextBoxRefVenda.Text, usCulture);
            entradaUsuario.referenciaCompra = Convert.ToDecimal(metroTextBoxRefCompra.Text, usCulture);
            if (entradaUsuario.referenciaVenda < entradaUsuario.referenciaCompra)
            {
                MessageBox.Show("Referência de venda não pode ser menor do que a referência de compra.");
                return;
            }
            ScraperAtivosDisponiveis.Atualizar();
            if (!Validacao.ValidaAtivoEstaDisponivelAPI(entradaUsuario.ativo))
            {
                DialogResult dialogResult = MessageBox.Show("Nós não fornecemos suporte para este ativo. Gostaria de saber para quais ativos temos suporte?"
                                                            , "alerta"
                                                            , MessageBoxButtons.YesNo
                                                            , MessageBoxIcon.Warning);
                if (dialogResult == DialogResult.Yes)
                {
                    string caminho = Path.Combine("Resources", "ativos_disponiveis.txt");
                    if (File.Exists(caminho))
                    {
                        string caminhoAreaDeTralho = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), $"ativos_disponiveis_{DateTime.Now.Ticks.ToString()}.txt");
                        File.Copy(caminho, caminhoAreaDeTralho, true);
                        Process.Start(Path.Combine("Resources", caminhoAreaDeTralho));
                    }

                    MessageBox.Show("Tente novamente com um dos ativos suportados.");
                }
                return;
            }

            DefineStatusCaixasDeTexto(false);
            metroLabel10.Text = $"Monitoramento iniciado";
            backgroundWorker1.ProgressChanged           += backgroundWorker1_ProgressChanged;
            backgroundWorker1.WorkerReportsProgress      = true;
            backgroundWorker1.WorkerSupportsCancellation = true;
            backgroundWorker1.RunWorkerAsync();
        }
예제 #2
0
        static void Main(string[] args)
        {
            Console.WriteLine("*************************************************");
            Console.WriteLine("Aguarde um momento enquanto o sistema realiza as validações necessárias.");
            Console.WriteLine("*************************************************");
            checarArquivoDeConfiguracao();
            if (!Validacao.ValidaParametrosEntrada(args))
            {
                Console.WriteLine("Os parâmetros de entrada não estão no formato correto. Seguir o exemplo:");
                Console.WriteLine("'Ativo'  'Referência para venda' 'Referência para compra'");
                Console.WriteLine("PETR4 22.67 22.59");
                Console.WriteLine("Nota1: O preço de referência para venda deve ser maior do que o preço de referência para compra.");
                Console.WriteLine("Nota2: Altere as configurações padrões no arquivo \"stock - quote - alert.exe.config\" para colocar suas próprias informações.");

                Environment.Exit(0);
            }

            entradaUsuario                  = new EntradaUsuario();
            usCulture                       = new CultureInfo(System.Configuration.ConfigurationManager.AppSettings["Culture"]);
            entradaUsuario.ativo            = args[0];
            entradaUsuario.referenciaVenda  = Convert.ToDecimal(args[1], usCulture);
            entradaUsuario.referenciaCompra = Convert.ToDecimal(args[2], usCulture);
            if (!ScraperAtivosDisponiveis.Atualizar())
            {
                Console.WriteLine("Não foi possível consultar novos ativos, vamos utilizar os ativos disponíveis na ultima atualização.");
            }

            if (!Validacao.ValidaAtivoEstaDisponivelAPI(entradaUsuario.ativo))
            {
                Console.WriteLine("Nós não fornecemos suporte para este ativo. Gostaria de saber para quais ativos temos suporte?(S\\N)");
                string answer = Console.ReadLine().ToUpper();
                if (answer.Equals("S"))
                {
                    foreach (var ativo in LeitorDeArquivos.ativosDisponveis())
                    {
                        Console.WriteLine(ativo);
                    }
                    Console.WriteLine("Tente novamente com um dos ativos suportados.");
                    Console.WriteLine("Pressione qualquer tecla para tentar novamente...");
                    //Console.ReadKey();
                    Environment.Exit(0);
                }
                else if (answer.Equals("N"))
                {
                    Console.WriteLine("Tudo bem, a aplicação será encerrada.");
                    Environment.Exit(0);
                }
                else
                {
                    Console.WriteLine("Comando desconhecido a aplicação será encerrada.");
                    Environment.Exit(1);
                }
            }

            timer          = new System.Timers.Timer();
            timer.Interval = 100;
            timer.Elapsed += OnTimedEvent;
            timer.Enabled  = true;
            timer.Start();
            Console.WriteLine("************************************************* ");
            Console.WriteLine("Para sair do programa pressione qualquer tecla... ");
            Console.WriteLine("*************************************************");
            Console.ReadLine();
        }