コード例 #1
0
        public void Avaliar(Prova prova)
        {
            if (!prova.Notas.Any())
                throw new InvalidOperationException("Não é possível avaliar uma prova sem notas");

            double somaNotas = 0;

            foreach (NotaProva nota in prova.Notas)
            {
                if (nota.Valor > _maiorNota)
                {
                    _maiorNota = nota.Valor;
                }
                if (nota.Valor < _menorNota)
                {
                    _menorNota = nota.Valor;
                }

                somaNotas += nota.Valor;
            }

            CalcularMedia(prova.Notas.Count, somaNotas);

            PioresNotas = ObtemPioresNotas(prova);
        }
コード例 #2
0
 private List<NotaProva> ObtemPioresNotas(Prova prova)
 {
     return prova.Notas
         .OrderBy(x => x.Valor)
         .ToList()
         .GetRange(0, prova.Notas.Count < 3 ? prova.Notas.Count : 3 );
 }
コード例 #3
0
        public ProvaDataBuilder Sobre(string assunto)
        {
            prova = new Prova( DateTime.Now );

            prova.Assunto = assunto;

            return this;
        }
コード例 #4
0
        public void Atualizar(Prova prova)
        {
            Prova provaEncontrada = _provas.Find(x => x.Id == prova.Id);

            provaEncontrada.Assunto = prova.Assunto;
            provaEncontrada.Data = prova.Data;
            provaEncontrada.Feedback = prova.Feedback;
            provaEncontrada.Gabarito = prova.Gabarito;
        }
コード例 #5
0
        public void Salvar(Prova prova)
        {
            string sqlProvas = "INSERT INTO TBPROVA (DATA, ASSUNTO, FEEDBACK_REALIZADO, GABARITO) VALUES ({0}DATA, {0}ASSUNTO, {0}FEEDBACK_REALIZADO, {0}GABARITO)";

            prova.Id = Db.Insert(sqlProvas, ParametrosProva(prova));

            string sqlNotas = "INSERT INTO TBNOTA (ID_PROVA, ID_ALUNO, VALOR) VALUES ({0}ID_PROVA, {0}ID_ALUNO, {0}VALOR) ";

            foreach (NotaProva nota in prova.Notas)
            {
                nota.Prova = prova;

                Db.Insert(sqlNotas, ParametrosNota(nota));
            }
        }
コード例 #6
0
 public void Salvar(Prova prova)
 {
     _provas.Add(prova);
 }
コード例 #7
0
 private object[] ParametrosProva(Prova prova)
 {
     return new Object[]
     {
         "ID", prova.Id,
         "DATA", prova.Data,
         "ASSUNTO", prova.Assunto,
         "FEEDBACK_REALIZADO", (int)prova.Feedback,
         "GABARITO", prova.Gabarito == null ? "" : prova.Gabarito.ToString()
     };
 }
コード例 #8
0
        public virtual void Atualizar(Prova prova)
        {
            string sql = "UPDATE TBPROVA SET DATA={0}DATA, ASSUNTO={0}ASSUNTO, FEEDBACK_REALIZADO={0}FEEDBACK_REALIZADO, GABARITO={0}GABARITO WHERE ID={0}ID";

            Db.Update(sql, ParametrosProva(prova));
        }
コード例 #9
0
        private Prova ConverterProva(IDataReader reader)
        {
            int id = Convert.ToInt32(reader["ID"]);
            DateTime data = Convert.ToDateTime(reader["DATA"]);
            string assunto = Convert.ToString(reader["ASSUNTO"]);

            FeedbackEnum feedback;
            Enum.TryParse(reader["FEEDBACK_REALIZADO"].ToString(), out feedback);

            GabaritoProva gabarito = new GabaritoProva(Convert.ToString(reader["GABARITO"]));

            Prova prova = new Prova(data, gabarito);
            prova.Id = id;
            prova.Feedback = feedback;
            prova.Assunto = assunto;

            return prova;
        }