Example #1
0
        public static void GeraRelatorio(RelatorioSessao relatorioSessao)
        {
            CreateDirectoryIfNotExists();
            StringBuilder relatorio = new StringBuilder();

            relatorio.Append(GetCabecalhoExperimento(relatorioSessao));
            relatorio.Append(GetInformacoesExperimentador(relatorioSessao.Experimentador));
            relatorio.Append(GetInformacoesParticipante(relatorioSessao.Participante));
            List <long> sessoesIds = relatorioSessao.IdSessoesSelecionadas;
            List <ContingenciaColateral> contingeciasColaterais = new List <ContingenciaColateral>();

            foreach (long sessaoId in sessoesIds)
            {
                contingeciasColaterais.AddRange(CCPorSessaoService.GetAllCCBySessaoId(sessaoId));
            }
            HashSet <ContingenciaColateral> contingenciasColateraisDoExperimento = new HashSet <ContingenciaColateral>(contingeciasColaterais);
            List <ContingenciaInstrucional> contingeciasInstrucionais            = new List <ContingenciaInstrucional>();

            foreach (ContingenciaColateral contingenciaColateral in contingenciasColateraisDoExperimento)
            {
                if (contingenciaColateral.CI != null)
                {
                    contingeciasInstrucionais.Add(contingenciaColateral.CI);
                }
            }
            if (contingeciasInstrucionais.Count > 0)
            {
                HashSet <ContingenciaInstrucional> contingeciasInstrucionaisDoExperimento = new HashSet <ContingenciaInstrucional>(contingeciasInstrucionais);
                relatorio.Append(GetInformacoesCIs(contingeciasInstrucionaisDoExperimento));
            }
            relatorio.Append(GetInformacoesCCs(contingenciasColateraisDoExperimento));
            relatorio.Append(GetInformacoeSessoes(SessaoService.GetAllByIds(sessoesIds)));
            relatorio.Append(GetInformacoesEventos(relatorioSessao));
            File.WriteAllText(GetPath(relatorioSessao.GetNomeArquivo()) + ".txt", relatorio.ToString());
        }
Example #2
0
        private static StringBuilder GetInformacoesEventos(long sessaoId, RelatorioSessao relatorio)
        {
            StringBuilder infoEventos = new StringBuilder();
            List <Evento> eventos     = relatorio.Eventos[sessaoId];

            int    totalAcertos  = 0;
            int    totalErros    = 0;
            int    totalNeutros  = 0;
            double latenciaTotal = 0.0;

            infoEventos.AppendLine("Eventos Realizados pelo participante {");

            DateTime eventoAnterior = relatorio.HoraInicio;

            foreach (Evento evento in eventos)
            {
                infoEventos.Append("   ").Append(evento.MontaMensagem());

                // É um evento de SC, registramos o intervalo
                if (evento.Acerto != -2)
                {
                    double diferencaDoEventoAnterior = (evento.HoraEvento - eventoAnterior).TotalSeconds;
                    infoEventos.Append(" | Intervalo do último evento: ").Append(diferencaDoEventoAnterior).AppendLine("s");

                    switch (evento.Acerto)
                    {
                    case -1: totalNeutros++; break;

                    case 0: totalErros++; break;

                    case 1: totalAcertos++; break;
                    }

                    latenciaTotal += diferencaDoEventoAnterior;
                }
                else
                {
                    infoEventos.AppendLine();
                }

                eventoAnterior = evento.HoraEvento;
            }

            infoEventos.AppendLine("}\n");

            infoEventos.AppendLine("Resumo dos eventos {");
            infoEventos.Append("   Total de Acetos: ").AppendLine(totalAcertos.ToString());
            infoEventos.Append("   Total de Erros: ").AppendLine(totalErros.ToString());
            infoEventos.Append("   Total de Neutros: ").AppendLine(totalNeutros.ToString());
            infoEventos.Append("   Latência média: ").Append(latenciaTotal / (totalAcertos + totalErros + totalNeutros)).AppendLine("s");
            infoEventos.AppendLine("}\n");

            return(infoEventos);
        }
Example #3
0
        public TelaExperimento(List <Sessao> sessoesExecutadas, Experimentador experimentador, Participante participante)
        {
            InitializeComponent();

            this.sessoesExecutadas = sessoesExecutadas;

            relatorioSessao = new RelatorioSessao(sessoesExecutadas.Select(it => it.Id).Cast <long>().ToList(), experimentador, participante);
            heightRatio     = height / 1080.0;
            widthRatio      = width / 1920.0;
            imageHeight     = Convert.ToInt32(283 * heightRatio);
            imageWidth      = Convert.ToInt32(333 * widthRatio);
        }
Example #4
0
        private static StringBuilder GetCabecalhoExperimento(RelatorioSessao relatorioSessao)
        {
            StringBuilder cabeçalhoExperimento = new StringBuilder();
            string        dataRealizacao       = relatorioSessao.HoraInicio.ToString("dd/MM/yyyy");
            string        horaInicio           = relatorioSessao.HoraInicio.ToString("hh:mm:ss");
            string        horaFim = relatorioSessao.HoraFim.ToString("hh:mm:ss");

            cabeçalhoExperimento.AppendLine("Data realização: " + dataRealizacao);
            cabeçalhoExperimento.AppendLine("Hora inicio: " + horaInicio);
            cabeçalhoExperimento.AppendLine("Hora fim: " + horaFim);
            cabeçalhoExperimento.AppendLine();
            return(cabeçalhoExperimento);
        }
Example #5
0
        public static void GeraRelatorio(RelatorioSessao relatorioSessao)
        {
            CreateDirectoryIfNotExists();

            relatorioSessao.FinalizarExperimento();

            StringBuilder relatorio = new StringBuilder();

            relatorio.Append(GetCabecalhoExperimento(relatorioSessao));
            relatorio.Append(GetInformacoesExperimentador(relatorioSessao.Experimentador));
            relatorio.Append(GetInformacoesParticipante(relatorioSessao.Participante));

            List <long>   sessoesIds = relatorioSessao.IdSessoesSelecionadas;
            List <Sessao> sessoes    = SessaoService.GetAllByIds(sessoesIds);

            foreach (var sessao in sessoes)
            {
                List <ContingenciaColateral> contingeciasColaterais = sessao.CCs;

                List <ContingenciaInstrucional> contingeciasInstrucionais = new List <ContingenciaInstrucional>();

                foreach (ContingenciaColateral contingenciaColateral in contingeciasColaterais)
                {
                    if (contingenciaColateral.CI != null)
                    {
                        contingeciasInstrucionais.Add(contingenciaColateral.CI);
                    }
                }

                relatorio.Append(GetInformacoeSessoes(sessao));

                if (contingeciasInstrucionais.Count > 0)
                {
                    relatorio.Append(GetInformacoesCIs(contingeciasInstrucionais));
                }

                relatorio.Append(GetInformacoesCCs(contingeciasColaterais));
                relatorio.Append(GetInformacoesEventos(sessao.Id, relatorioSessao));
                relatorio.AppendLine("///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n");
            }

            File.WriteAllText(GetPath(relatorioSessao.GetNomeArquivo()) + ".txt", relatorio.ToString());
        }
Example #6
0
        private static StringBuilder GetInformacoesEventos(RelatorioSessao relatorio)
        {
            StringBuilder informacoesCIs = new StringBuilder();
            List <Evento> eventos        = relatorio.Eventos;

            informacoesCIs.AppendLine("Eventos Realizados pelo participante{");
            informacoesCIs.AppendLine("   Iniciou(apos leitura das instruções): " + relatorio.HoraInicio.ToString("hh:mm:ss"));
            informacoesCIs.AppendLine("   Sessão | ContingenciaColateral | número SC | imagem SC | pontos feedback | tentativa | pontos totais | horário | tempo por evento |");
            DateTime eventoAnterior = relatorio.HoraInicio;

            foreach (Evento evento in eventos)
            {
                TimeSpan diferencaDoEventoAnterior = evento.HoraEvento - eventoAnterior;
                informacoesCIs.Append(evento.MontaMensagem()).Append("| Intervalor do último evento: ").Append(diferencaDoEventoAnterior.TotalSeconds.ToString()).AppendLine("s");
                eventoAnterior = evento.HoraEvento;
            }
            informacoesCIs.AppendLine();
            informacoesCIs.AppendLine("}");

            return(informacoesCIs);
        }
Example #7
0
        public TelaExperimento(List <Sessao> sessoesExecutadas, Experimentador experimentador, Participante participante)
        {
            InitializeComponent();

            this.sessoesExecutadas = sessoesExecutadas;

            relatorioSessao = new RelatorioSessao(sessoesExecutadas.Select(it => it.Id).Cast <long>().ToList(), experimentador, participante);

            imageHeight = Convert.ToInt32(283 * ViewUtils.heightRatio);
            imageWidth  = Convert.ToInt32(333 * ViewUtils.widthRatio);

            Location = new Point(0, 0);
            Size     = new Size(width, height);

            if (width != 1920 || height != 1080)
            {
                ViewUtils.CorrigeEscalaTodosOsFilhos(this);
            }

            panelCI.Visible = false;
            EscondeCC();

            ApresentarSessoes();
        }