Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
        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();
            }
        }