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); }
public async Task <int> AdicionarPublicacaoAsync(string descricao) { var publicacao = new Publicacao(); //{ Nome = descricao }; _publicacaoRepository.Adicionar(publicacao); await _publicacaoRepository.SaveChangesAsync(); return(publicacao.Id); }
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); }