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