예제 #1
0
파일: Tests.cs 프로젝트: jaropolk2/Quiz
        public void PodeCadastrarNovasCategorias()
        {
            IList<Assunto> listaCategorias = new List<Assunto>();
            listaCategorias.Add(new Assunto() { Name = "Romantismo" });
            listaCategorias.Add(new Assunto() { Name = "Neoclassicismo" });
            listaCategorias.Add(new Assunto() { Name = "Cubismo" });

            IQuizSetup serviceSetup = null;

            using (var contexto = new EFUnitOfWork(new GallerySMContext()))
            {
                var repositorio = new QuizRepositorio(contexto);
                serviceSetup = new QuizSetup(repositorio);
                serviceSetup.CriaNovasCategorias(listaCategorias);
            }

            listaCategorias = new List<Assunto>();
            listaCategorias.Add(new Assunto() { Name = "Romantismo filha" });
            listaCategorias.Add(new Assunto() { Name = "Neoclassicismo filha" });
            listaCategorias.Add(new Assunto() { Name = "Cubismo filha" });
            using (var contexto = new EFUnitOfWork(new GallerySMContext()))
            {
                var repositorio = new QuizRepositorio(contexto);
                var primeiraCategoria = repositorio.ListaCategoriasExistentes().Where(c => c.AssuntoId == 1).FirstOrDefault();
                foreach (var c in listaCategorias)
                    primeiraCategoria.ChildAssuntos.Add(c);
                contexto.Save();
            }
        }
예제 #2
0
        private bool CorrigeResposta(int quizId, int usuarioid, int perguntaId, int respostaId)
        {
            //repositórios
            UsuarioRepositorio repositorioUsuario = new UsuarioRepositorio(contexto);
            QuizRepositorio repositorio = new QuizRepositorio(contexto);

            //recupera usuário
            Usuario usuarioLocalizado = repositorioUsuario.BuscarUsuario(usuarioid);

            //recupera Quiz, a pergunta e a resposta proposta
            IQuizService serviceQuiz = new QuizService(repositorio);
            Quiz quizLocalizado = serviceQuiz.RecuperaQuiz(quizId);
            Pergunta perguntaLocalizada = quizLocalizado.Perguntas.First(p => p.PerguntaId == perguntaId);
            Resposta respostaLocalizada = perguntaLocalizada.PossiveisRespostas.First(r => r.RespostaId == respostaId);

            //corrige a resposta, gera e retorna o histórico
            HistoricoQuiz historico = quizLocalizado.Responder(usuarioLocalizado, perguntaLocalizada, respostaLocalizada);
            contexto.Save();
            return historico.Acertou;
        }
예제 #3
0
 public QuizModel Start(AssuntoModel assunto)
 {
     var repositorio = new QuizRepositorio(contexto);
     var quiz = repositorio.RecuperarPorCategoria(assunto.AssuntoId);
     return quiz.ToModel();
 }
예제 #4
0
 public IList<AssuntoModel> AssuntosDeQuizzesDisponiveisPara(UsuarioModel usuario)
 {
     var repositorioQuiz = new QuizRepositorio(contexto);
     var assuntos = repositorioQuiz.AssuntosDeQuizzesDisponiveisPara(usuario.UsuarioId);
     return assuntos.ToList().ToModel();
 }
예제 #5
0
파일: Tests.cs 프로젝트: jaropolk2/Quiz
        public void PodeCriarUmQuizComPerguntas()
        {
            using (var contexto = new EFUnitOfWork(new GallerySMContext()))
            {
                var repositorio = new QuizRepositorio(contexto);

                //IQuizService serviceQuiz = new QuizService(repositorio);

                IQuizSetup serviceSetup = new QuizSetup(repositorio);

                Assunto categoria = repositorio.ListaCategoriasExistentes().Where(c => c.AssuntoId == 14).FirstOrDefault();

                IList<Resposta> possiveisRespostas = new List<Resposta>();

                Quiz quiz = QuizFactory.CriaQuiz(categoria, "Primeiro quiz", DateTime.Now.AddDays(15), true);

                for (int j = 0; j < 10; j++)
                {
                    var pergunta = quiz.AdicionaPergunta("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", Dificuldade.Basico);

                    for (int i = 0; i <= 3; i++)
                        pergunta.AdicionarResposta("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", false);

                    pergunta.AdicionarResposta("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", true);
                }
                try
                {
                    serviceSetup.Salva(quiz);
                }
                catch (Exception ex)
                {
                    throw ((DbEntityValidationException)ex);
                }

            }
        }