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(); }
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(); }