public static void DeletarPorCI(ContingenciaInstrucional contingenciaInstrucional) { using (IDbConnection cnn = new SQLiteConnection(GetConnectionString())) { string sqlInsert = $"DELETE FROM ContigenciaInstrucionalToTato WHERE IdCI = {contingenciaInstrucional.Id}"; cnn.Execute(sqlInsert); } }
public static void Salvar(ContingenciaInstrucional contingenciaInstrucional, UnidadeDoExperimento tato, int i) { using (IDbConnection cnn = new SQLiteConnection(GetConnectionString())) { string sqlInsert = $"INSERT INTO ContigenciaInstrucionalToTato (IdCI, IdUnidadeExperimento, Ordem) VALUES ({contingenciaInstrucional.Id}, {tato.Id}, {i})"; cnn.Execute(sqlInsert); } }
private async Task ApresentarSessao(Sessao sessao) { sessaoAtual = sessao; List <ContingenciaColateral> CCs = sessaoAtual.CCs; if (sessaoAtual.Instrucao != null) { new TelaMensagem(sessaoAtual.Instrucao.Texto, false, true).ShowDialog(); } timerAtual?.Stop(); if (sessaoAtual.CriterioDuracaoSegundos > 0) { timerAtual = new Timer { Interval = Convert.ToInt32(sessaoAtual.CriterioDuracaoSegundos) * 1000 }; timerAtual.Tick += new EventHandler(EventoFimTempo); timerAtual.Start(); } bool encerrada = false; do { ContingenciaColateral CC = EscolhaCCASerApresentada(); if (CC == null) { break; } EscondeCC(); ContingenciaInstrucional CI = CC.CI; if (CI != null) { await ApresentarCI(CC); } else { panelCI.Visible = false; await ApresentarCC(CC); } if (sessaoAtual.CriterioNumeroTentativas > 0 && sessaoAtual.NumeroTentativas >= sessaoAtual.CriterioNumeroTentativas) { FinalizarCC("Númeo de Tentativas"); encerrada = true; } if (sessaoAtual.CriterioAcertosConcecutivos > 0 && sessaoAtual.AcertosConcecutivos >= sessaoAtual.CriterioAcertosConcecutivos) { FinalizarCC("Acertos Consecutivos"); encerrada = true; } } while (!encerrada); indiceCCAtual = 0; }
public static void Salvar(ContingenciaInstrucional contingenciaInstrucional) { AbstractService.Salvar(contingenciaInstrucional, "ContingenciaInstrucional", "INSERT INTO ContingenciaInstrucional (Nome, SemCor) VALUES (@Nome, @SemCor); SELECT CAST(last_insert_rowid() as int)", ""); SalvarObjetosFilhos(contingenciaInstrucional); }
private static void SalvarObjetosFilhos(ContingenciaInstrucional contingenciaInstrucional) { for (int i = 0; i < contingenciaInstrucional.Tatos.Count; i++) { UnidadeDoExperimento tato = contingenciaInstrucional.Tatos[i]; UnidadeDoExperimentoService.Salvar(tato); ContigenciaInstrucionalToTatoService.Salvar(contingenciaInstrucional, tato, i); } }
public static List <ContingenciaColateral> GetAllByCI(ContingenciaInstrucional CI) { if (CI == null || CI.Id == 0) { return(new List <ContingenciaColateral>()); } using (IDbConnection cnn = new SQLiteConnection(GetConnectionString())) { return(cnn.Query <ContingenciaColateral>("SELECT * FROM ContingenciaColateral WHERE CIId = @Id", CI).ToList <ContingenciaColateral>()); } }
public static void Deletar(ContingenciaInstrucional contingenciaInstrucional) { List <ContingenciaColateral> CCsComEssaCI = ContingenciaColateralService.GetAllByCI(contingenciaInstrucional); if (CCsComEssaCI.Count > 0) { throw new System.Exception($"Esse EC está cadastrada nos seguintes MTSs: {ListUtils.Join(CCsComEssaCI.Select(it => it.Nome).Cast<string>().ToList(), ", ")}. Delete primeiro esses MTSs ou os associe a outro EC"); } DeletarObjetosFilhos(contingenciaInstrucional); AbstractService.Deletar(contingenciaInstrucional, "ContingenciaInstrucional"); }
public static ContingenciaInstrucional GetById(long id) { if (id <= 0) { return(null); } ContingenciaInstrucional contingenciaInstrucional = AbstractService.GetById <ContingenciaInstrucional>(id, "ContingenciaInstrucional"); ObterObjetosFilhos(contingenciaInstrucional); return(contingenciaInstrucional); }
private ContingenciaInstrucional GetCISelecionada() { if (listViewCI.SelectedItems.Count == 0) { return(null); } long id = ViewUtils.GetIdSelecionadoInListView(listViewCI); ContingenciaInstrucional CI = ContingenciaInstrucionalService.GetById(id); return(CI); }
private void ButtonCadastrarCI_Click(object sender, EventArgs e) { ContingenciaInstrucional CI = CriaCIPelosCampos(); ContingenciaInstrucionalService.Salvar(CI); comboBoxCI.Items.Add(CI); ListViewItem itemCI = new ListViewItem(CI.Nome); itemCI.SubItems.Add(CI.Id.ToString()); listViewCI.Items.Add(itemCI); }
public EventoCI(Sessao sessao, ContingenciaInstrucional CI, UnidadeDoExperimento tato) : base(sessao) { this.CI = CI; for (int i = 0; i < CI.Tatos.Count; i++) { if (CI.Tatos[i].Id == tato.Id) { nomeTato = "Tato " + (i + 1).ToString(); break; } } }
private ContingenciaInstrucional GetCISelecionada() { if (listViewCI.SelectedItems.Count == 0) { return(null); } long id = long.Parse(listViewCI.SelectedItems[0].SubItems[1].Text); ContingenciaInstrucional CI = ContingenciaInstrucionalService.GetById(id); return(CI); }
private void ButtonApagarCI_Click(object sender, EventArgs e) { ContingenciaInstrucional CI = GetCISelecionada(); if (CI == null) { return; } RemoverDeComboBox <ContingenciaInstrucional>(comboBoxCI, CI.Id); ContingenciaInstrucionalService.Deletar(CI); listViewCI.Items.Remove(listViewCI.SelectedItems[0]); }
private void ButtonSelecionarCI_Click(object sender, EventArgs e) { ContingenciaInstrucional CI = GetCISelecionada(); if (CI == null) { return; } textBoxNomeCI.Text = CI.Nome; foreach (UnidadeDoExperimento tato in CI.Tatos) { ListViewItem itemTato = new ListViewItem(tato.NomeImagem); listViewTatos.Items.Add(itemTato); } }
private ContingenciaInstrucional CriaCIPelosCampos() { List <UnidadeDoExperimento> tatos = new List <UnidadeDoExperimento>(); foreach (ListViewItem item in listViewTatos.Items) { UnidadeDoExperimento tato = new UnidadeDoExperimento { NomeImagem = item.Text }; tatos.Add(tato); } string nome = textBoxNomeCI.Text; ContingenciaInstrucional CI = new ContingenciaInstrucional { Nome = nome, Tatos = tatos }; return(CI); }
public static List <ContigenciaInstrucionalToTato> GetByCIAndTato(ContingenciaInstrucional contingenciaInstrucional, UnidadeDoExperimento tato) { return(AbstractService.GetByObj <ContigenciaInstrucionalToTato>( "SELECT CiTT.* FROM UnidadeDoExperimento ue JOIN ContigenciaInstrucionalToTato CiTT ON ue.Id = CiTT.IdUnidadeExperimento WHERE CiTT.IdCI = @IdCI AND CiTT.IdUnidadeExperimento = @IdUE ORDER BY CiTT.Ordem", new { IdCi = contingenciaInstrucional.Id, IdUE = tato.Id })); }
private static void DeletarObjetosFilhos(ContingenciaInstrucional contingenciaInstrucional) { ContigenciaInstrucionalToTatoService.DeletarPorCI(contingenciaInstrucional); UnidadeDoExperimentoService.DeletarAll(contingenciaInstrucional.Tatos); }
private static void ObterObjetosFilhos(ContingenciaInstrucional contingenciaInstrucional) { contingenciaInstrucional.Tatos = UnidadeDoExperimentoService.GetAllByCI(contingenciaInstrucional); }
private ContingenciaColateral CriaCCPelosCampos() { ContingenciaInstrucional CI = comboBoxCI.SelectedItem as ContingenciaInstrucional; Feedback feedbackSModelo = new Feedback { ValorClick = 0, Neutro = checkBoxSemCorModelo.Checked, SemCor = checkBoxSemCorModelo.Checked, ProbabilidadeComplementar = 100 }; FeedbackService.Salvar(feedbackSModelo); UnidadeDoExperimento sModelo = new UnidadeDoExperimento { Feedback = feedbackSModelo, NomeImagem = ImagemService.CopiaImagemParaPasta(textBoxModelo.Text), NomeAudio = AudioService.CopiaAudioParaPasta(textBoxAudioModelo.Text) }; Feedback feedbackSC1 = new Feedback { ValorClick = Convert.ToInt32(numericSC1.Value), Neutro = checkBoxNeutroSC1.Checked, SemCor = checkBoxSemCorSC1.Checked, ProbabilidadeComplementar = Convert.ToInt32(numericProbabilidadeSC1.Value) }; FeedbackService.Salvar(feedbackSC1); UnidadeDoExperimento SC1 = new UnidadeDoExperimento { Feedback = feedbackSC1, NomeImagem = ImagemService.CopiaImagemParaPasta(textBoxSC1.Text), NomeAudio = AudioService.CopiaAudioParaPasta(textBoxAudioSC1.Text) }; Feedback feedbackSC2 = new Feedback { ValorClick = Convert.ToInt32(numericSC2.Value), Neutro = checkBoxNeutroSC2.Checked, SemCor = checkBoxSemCorSC2.Checked, ProbabilidadeComplementar = Convert.ToInt32(numericProbabilidadeSC2.Value) }; FeedbackService.Salvar(feedbackSC2); UnidadeDoExperimento SC2 = new UnidadeDoExperimento { Feedback = feedbackSC2, NomeImagem = ImagemService.CopiaImagemParaPasta(textBoxSC2.Text), NomeAudio = AudioService.CopiaAudioParaPasta(textBoxAudioSC2.Text) }; Feedback feedbackSC3 = new Feedback { ValorClick = Convert.ToInt32(numericSC3.Value), Neutro = checkBoxNeutroSC3.Checked, SemCor = checkBoxSemCorSC3.Checked, ProbabilidadeComplementar = Convert.ToInt32(numericProbabilidadeSC3.Value) }; FeedbackService.Salvar(feedbackSC3); UnidadeDoExperimento SC3 = new UnidadeDoExperimento { Feedback = feedbackSC3, NomeImagem = ImagemService.CopiaImagemParaPasta(textBoxSC3.Text), NomeAudio = AudioService.CopiaAudioParaPasta(textBoxAudioSC3.Text) }; UnidadeDoExperimentoService.Salvar(new List <UnidadeDoExperimento>() { sModelo, SC1, SC2, SC3 }); ContingenciaColateral CC = new ContingenciaColateral { Nome = textBoxNomeCC.Text, CI = CI, sModelo = sModelo, SC1 = SC1, SC2 = SC2, SC3 = SC3 }; return(CC); }
private async Task ApresentarCI(ContingenciaColateral CC) { ContingenciaInstrucional CI = CC.CI; List <UnidadeDoExperimento> tatos = CI.Tatos; int quantidadeTatos = tatos.Count; tasksTato = new List <TaskCompletionSource <bool> >(); tatoToPicture = new List <PictureBox>(); pictureTato1.Visible = false; pictureTato2.Visible = false; pictureTato3.Visible = false; pictureTato4.Visible = false; pictureTato5.Visible = false; switch (quantidadeTatos) { case 1: tatoToPicture.Add(pictureTato3); pictureTato3.Visible = true; break; case 2: tatoToPicture.Add(pictureTato2); tatoToPicture.Add(pictureTato4); pictureTato2.Visible = true; pictureTato4.Visible = true; break; case 3: tatoToPicture.Add(pictureTato1); tatoToPicture.Add(pictureTato3); tatoToPicture.Add(pictureTato5); pictureTato1.Visible = true; pictureTato3.Visible = true; pictureTato5.Visible = true; break; case 4: tatoToPicture.Add(pictureTato1); tatoToPicture.Add(pictureTato2); tatoToPicture.Add(pictureTato4); tatoToPicture.Add(pictureTato5); pictureTato1.Visible = true; pictureTato2.Visible = true; pictureTato4.Visible = true; pictureTato5.Visible = true; break; case 5: tatoToPicture.Add(pictureTato1); tatoToPicture.Add(pictureTato2); tatoToPicture.Add(pictureTato3); tatoToPicture.Add(pictureTato4); tatoToPicture.Add(pictureTato5); pictureTato1.Visible = true; pictureTato2.Visible = true; pictureTato3.Visible = true; pictureTato4.Visible = true; pictureTato5.Visible = true; break; } panelCI.Visible = true; for (int i = 0; i < quantidadeTatos; i++) { tasksTato.Add(new TaskCompletionSource <bool>(false)); tatoToPicture[i].BackColor = Color.Transparent; tatoToPicture[i].Image = ImageUtils.Resize(tatos[i].Imagem, imageWidth, imageHeight); } for (int i = 0; i < quantidadeTatos; i++) { await tasksTato[i].Task; relatorioSessao.AdicionarEvento(sessaoAtual.Id, new Evento($"Sessão {sessaoAtual.Nome}; EC {CI.Nome}; Tato da imagem {tatos[i].NomeImagem} Tocado")); if (!CI.SemCor) { tatoToPicture[i].BackColor = Color.Green; } } for (int i = 0; i < quantidadeTatos; i++) { tasksTato[i].TrySetResult(false); } await ApresentarCC(CC); }
public static List <UnidadeDoExperimento> GetAllByCI(ContingenciaInstrucional contingenciaInstrucional) { return(AbstractService.GetByObj <UnidadeDoExperimento>( "SELECT ue.* FROM UnidadeDoExperimento ue JOIN ContigenciaInstrucionalToTato CiTT ON ue.Id = CiTT.IdUnidadeExperimento WHERE CiTT.IdCI = @Id ORDER BY CiTT.Ordem", contingenciaInstrucional)); }
private async Task ApresentarCI(ContingenciaColateral CC) { CIFinalizado = false; ContingenciaInstrucional CI = CC.CI; List <UnidadeDoExperimento> tatos = CI.Tatos; int quantidadeTatos = tatos.Count; tasksTato = new List <TaskCompletionSource <bool> >(); tatoToPicture = new Dictionary <int, PictureBox>(); pictureToTato = new Dictionary <PictureBox, int>(); switch (quantidadeTatos) { case 1: tatoToPicture.Add(1, pictureTato3); pictureToTato.Add(pictureTato3, 1); pictureTato1.Visible = false; pictureTato2.Visible = false; pictureTato3.Visible = true; pictureTato4.Visible = false; pictureTato5.Visible = false; break; case 2: tatoToPicture.Add(1, pictureTato2); tatoToPicture.Add(2, pictureTato4); pictureToTato.Add(pictureTato2, 1); pictureToTato.Add(pictureTato4, 2); pictureTato1.Visible = false; pictureTato2.Visible = true; pictureTato3.Visible = false; pictureTato4.Visible = true; pictureTato5.Visible = false; break; case 3: tatoToPicture.Add(1, pictureTato1); tatoToPicture.Add(2, pictureTato3); tatoToPicture.Add(3, pictureTato5); pictureToTato.Add(pictureTato1, 1); pictureToTato.Add(pictureTato3, 2); pictureToTato.Add(pictureTato5, 3); pictureTato1.Visible = true; pictureTato2.Visible = false; pictureTato3.Visible = true; pictureTato4.Visible = false; pictureTato5.Visible = true; break; case 4: tatoToPicture.Add(1, pictureTato1); tatoToPicture.Add(2, pictureTato2); tatoToPicture.Add(3, pictureTato4); tatoToPicture.Add(4, pictureTato5); pictureToTato.Add(pictureTato1, 1); pictureToTato.Add(pictureTato2, 2); pictureToTato.Add(pictureTato4, 3); pictureToTato.Add(pictureTato5, 4); pictureTato1.Visible = true; pictureTato2.Visible = true; pictureTato3.Visible = false; pictureTato4.Visible = true; pictureTato5.Visible = true; break; case 5: tatoToPicture.Add(1, pictureTato1); tatoToPicture.Add(2, pictureTato2); tatoToPicture.Add(3, pictureTato3); tatoToPicture.Add(4, pictureTato4); tatoToPicture.Add(5, pictureTato5); pictureToTato.Add(pictureTato1, 1); pictureToTato.Add(pictureTato2, 2); pictureToTato.Add(pictureTato3, 3); pictureToTato.Add(pictureTato4, 4); pictureToTato.Add(pictureTato5, 5); pictureTato1.Visible = true; pictureTato2.Visible = true; pictureTato3.Visible = true; pictureTato4.Visible = true; pictureTato5.Visible = true; break; } panelCI.Visible = true; for (int i = 0; i < quantidadeTatos; i++) { tasksTato.Add(new TaskCompletionSource <bool>(false)); tatoToPicture[i + 1].BackColor = Color.White; tatoToPicture[i + 1].Image = ImageUtils.Resize(tatos[i].Imagem, imageWidth, imageHeight); } for (int i = 0; i < quantidadeTatos; i++) { await tasksTato[i].Task; tatoToPicture[i + 1].BackColor = Color.Green; relatorioSessao.AdicionarEvento(new EventoCI(sessaoAtual, CI, tatos[i])); } for (int i = 0; i < quantidadeTatos; i++) { tasksTato[i].TrySetResult(false); } CIFinalizado = true; await ApresentarCC(CC, true); }