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);
     }
 }
Exemple #3
0
        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);
        }
Exemple #9
0
        private ContingenciaInstrucional GetCISelecionada()
        {
            if (listViewCI.SelectedItems.Count == 0)
            {
                return(null);
            }

            long id = ViewUtils.GetIdSelecionadoInListView(listViewCI);
            ContingenciaInstrucional CI = ContingenciaInstrucionalService.GetById(id);

            return(CI);
        }
Exemple #10
0
        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);
        }
Exemple #11
0
 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;
         }
     }
 }
Exemple #12
0
        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);
        }
Exemple #13
0
        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]);
        }
Exemple #14
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);
            }
        }
Exemple #15
0
        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);
 }
Exemple #19
0
        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);
        }
Exemple #20
0
        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);
        }
Exemple #21
0
 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));
 }
Exemple #22
0
        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);
        }