예제 #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();
        }
예제 #2
0
        private void btnSelecionarExperimento_Click(object sender, EventArgs e)
        {
            if (listViewExperimento.SelectedItems.Count == 0)
            {
                MessageBox.Show("Nenhum Experimento selecionado!", "Advertência");
                return;
            }

            ExperimentoRealizado experimento = ExperimentoRealizadoService.GetById(ViewHelper.GetIdSelecionadoInListView(listViewExperimento));

            new GeradorDeRelatorios(experimento).GerarRelatorio();
            MessageBox.Show("Relatório gerado! Nome do arquivo: " + experimento.GetNomeArquivo(), "Sucesso");
        }
예제 #3
0
        private void CarregarListaExperimento()
        {
            List <ExperimentoRealizado> experimentos = ExperimentoRealizadoService.GetAll();

            experimentos.OrderBy(it => it.DataHoraInicio);

            listViewExperimento.Items.Clear();
            listViewExperimento.Items.AddRange(experimentos.Select(it => {
                var item = new ListViewItem(it.Nome);
                item.SubItems.Add(it.Id.ToString());
                return(item);
            }).Cast <ListViewItem>().ToArray());
        }
예제 #4
0
        private void btnDeletarExperimento_Click(object sender, EventArgs e)
        {
            if (listViewExperimento.SelectedItems.Count == 0)
            {
                MessageBox.Show("Nenhum Experimento selecionado!", "Advertência");
                return;
            }

            ExperimentoRealizado experimento = ExperimentoRealizadoService.GetById(ViewHelper.GetIdSelecionadoInListView(listViewExperimento));

            ExperimentoRealizadoService.Deletar(experimento);
            listViewExperimento.Items.Remove(listViewExperimento.SelectedItems[0]);
            MessageBox.Show("Arquivo de relatório deletado!", "Sucesso");
        }
예제 #5
0
        private void GeraRelatorioNovamente(long idExperimentoRealizado)
        {
            var experimentoRealizado = ExperimentoRealizadoService.GetById(idExperimentoRealizado);
            var geradorRelatorio     = new GeradorRelatorios(experimentoRealizado);

            if (geradorRelatorio.ExperimentoJaTemRelatorioNaPasta())
            {
                MessageBox.Show("Esse relatório já está na pasta de relatórios!", "Aviso");
                return;
            }

            try {
                geradorRelatorio.GerarRelatorio();
            } catch (NullReferenceException) {
                MessageBox.Show("Esse relatório não pode ser gerado novamente! Provavelmente algo na configuração dele foi deletado.", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                return;
            }

            MessageBox.Show("Relatório gerado novamente com sucesso!", "Sucesso");
        }
예제 #6
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();
            }
        }