private async void ApresentarCondicoes(List <Condicao> condicoes) { if (condicoes.Count > 0) { experimentoRealizado.RegistrarEvento(new Evento($"Iniciando apresentação de {condicoes.Count.ToString()} condições", "Intervalo")); foreach (Condicao condicao in condicoes) { taskCondicaoAtual = new TaskCompletionSource <bool>(false); ApresentarCondicao(condicao); await taskCondicaoAtual.Task; experimentoRealizado.RegistrarEvento(new Evento($"Apresentação da condição '{condicao.Nome}' finalizada", "Condição")); } if (timerPontosPassivos != null) { timerPontosPassivos.Stop(); } } else { experimentoRealizado.RegistrarEvento(new Evento($"Não existem condições nesse experimento para serem apresentadas", "Intervalo")); } experimentoRealizado.RegistrarEvento(new Evento($"Fim do experimento!", "Finalização")); ExperimentoRealizadoService.Salvar(experimentoRealizado); new GeradorDeRelatorios(experimentoRealizado).GerarRelatorio(); Close(); }
private async void IniciarNovoNumero() { string novoNumero; if (experimentoAtual == 1) { novoNumero = experimentoUmRealizado.GeraNumero(); // Iniciamos o experimento 2 if (novoNumero == null) { experimentoAtual++; experimentoDoisRealizado.SetTamanhoSequencia(experimentoUmRealizado.tamanhoMaximoLinhaDeBase); experimentoDoisRealizado.SetTamanhoBlocoTentativas(experimentoUm.TamanhoBlocoTentativas); experimentoDoisRealizado.DateTimeInicio = DateTime.Now; ExperimentoDoisRealizadoService.Salvar(experimentoDoisRealizado); Opacity = 0; RegistrarEvento($"Tela preta para instrução do experimento dois. Opacidade: {Opacity}", true); new TelaMensagem(experimentoDois.InstrucaoInicial, true).ShowDialog(); IniciarNovaFase(); return; } } else { novoNumero = experimentoDoisRealizado.GerarNumero(); // Acabou o experimento if (novoNumero == null) { ExperimentoRealizadoService.Salvar(experimentoRealizado); var geradorRelatorio = new GeradorRelatorios(experimentoRealizado); geradorRelatorio.GerarRelatorio(); Close(); return; } if (experimentoDoisRealizado.faseAtual > 0) { MostrarMensagem(experimentoDoisRealizado.GrauAtual()); } } lblNumero.Font = new Font(lblNumero.Font.Name, tamanhoFonteOriginal, lblNumero.Font.Style); lblNumero.Text = novoNumero; while (TextRenderer.MeasureText(lblNumero.Text, lblNumero.Font).Width >= pnNumero.Size.Width) { var novaFonte = new Font(lblNumero.Font.Name, lblNumero.Font.Size - 1, lblNumero.Font.Style); lblNumero.Font = novaFonte; tbInput.Font = novaFonte; } lblNumero.Location = new Point { Y = (pnNumero.Size.Height - lblNumero.Size.Height) / 2, X = (pnNumero.Size.Width - lblNumero.Size.Width) / 2 }; RegistrarEvento($"Inciando apresentação de um novo número: {novoNumero}"); pnNumero.Visible = true; await FadeIn(this, 1); await Task.Delay(experimentoUm.TempoApresentacaoEstimulo * 1000); pnNumero.Visible = false; if (experimentoAtual == 1 && experimentoUmRealizado.faseAtual == 0) { PreparaParaReceberInput(); } else { SortearPosicaoBotoes(); btnCerteza.Visible = true; btnTalvez.Visible = true; btnCerteza.Enabled = true; btnTalvez.Enabled = true; btnInvisivel.Focus(); } }