示例#1
0
        public async Task <int> IncluirNovaPublicacaoAsync(DateTime dataInicio, DateTime dataFim, int valor, int idAvaliacao, int idTurma)
        {
            var publicacao = new Publicacao()
            {
                DataInicio   = dataInicio,
                DataFim      = dataFim,
                Valor        = valor,
                IdAvaliacao  = idAvaliacao,
                IdTurma      = idTurma,
                CriadoEm     = DateTime.Now,
                AtualizadoEm = DateTime.Now
            };

            if (dataInicio > dataFim)
            {
                throw new Exception("A datae hora de início não pode ser maior que a datae hora de fim!");
            }
            if (dataInicio == dataFim)
            {
                throw new Exception("A data e hora de início não pode ser igual a data e hora de fim!");
            }

            var avaliacao = await _avaliacaoRepository.ObterComRelacoesAsync(publicacao.IdAvaliacao);

            if (avaliacao.Questoes == null || avaliacao.Questoes.Count <= 0)
            {
                throw new Exception("Para ser publicada uma avaliação deve conter ao menos 1 questão!");
            }

            _publicacaoRepository.Adicionar(publicacao);
            await _publicacaoRepository.SaveChangesAsync();

            return(publicacao.Id);
        }
示例#2
0
        public async Task <int> AdicionarPublicacaoAsync(string descricao)
        {
            var publicacao = new Publicacao(); //{ Nome = descricao };

            _publicacaoRepository.Adicionar(publicacao);

            await _publicacaoRepository.SaveChangesAsync();

            return(publicacao.Id);
        }
示例#3
0
        public async Task <int> AdicionarPublicacaoAsync(int avaliacaoId, int turmaId, DateTime dataInicio, DateTime dataFim, int valorProva)
        {
            if (dataFim < dataInicio)
            {
                throw new DomainException("A data de fim não pode ser anterior à data de início!");
            }

            var publicacoesTurma = await _publicacaoRepository.ListarPublicacoesPorTurmaAsync(turmaId);

            if (publicacoesTurma.Find(x => x.AvaliacaoId == avaliacaoId) != null)
            {
                throw new DomainException("Essa avaliação já foi publicada para esta turma!");
            }

            var avaliacao = await _avaliacaoRepository.ObterComQuestoresAsync(avaliacaoId);

            if (avaliacao.Questoes.Find(x => x.Opcoes.Count < 4) != null)
            {
                throw new DomainException("Essa avaliação não está completa! É necessário que todas as questões tenham ao menos 4 opções!");
            }

            var publicacao = new Publicacao()
            {
                AvaliacaoId    = avaliacaoId,
                TurmaId        = turmaId,
                DataInicio     = dataInicio,
                DataFim        = dataFim,
                ValorProva     = valorProva,
                DataPublicacao = DateTime.Now
            };

            _publicacaoRepository.Adicionar(publicacao);

            await _publicacaoRepository.SaveChangesAsync();

            return(publicacao.Id);
        }