public async Task <int> AlterarPublicacaoAsync(int professorId, int id, DateTime dataInicio, DateTime dataFim, int valorProva) { var publicacao = await _publicacaoRepository.ObterAsync(id); if (publicacao == null) { throw new DomainException("A publicação não foi encontrada!"); } publicacao.DataInicio = dataInicio; publicacao.DataFim = dataFim; publicacao.ValorProva = valorProva; var erros = publicacao.Validate(); if (erros.Length == 0) { if (publicacao.Avaliacao.ProfessorId != professorId) { throw new DomainException("A avaliação informada não pertence ao professor logado!"); } _publicacaoRepository.Modificar(publicacao); _publicacaoRepository.SaveChanges(); return(publicacao.Id); } else { throw new DomainException(erros); } }
public async Task <int> AlterarPublicacaoAsync(int id, 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 publicacao = await _publicacaoRepository.ObterAsync(id); if (publicacao.ValorProva != valorProva) { var provas = await _provaRepository.ListarPorAvaliacaoAsync(publicacao.AvaliacaoId); if (provas?.Count > 0) { throw new DomainException("Não é permitido alterar o valor da publicação quando a prova já foi feita por algum aluno!"); } } publicacao.DataInicio = dataInicio; publicacao.DataFim = dataFim; publicacao.ValorProva = valorProva; _publicacaoRepository.Modificar(publicacao); await _publicacaoRepository.SaveChangesAsync(); return(publicacao.Id); }
public async Task <int> AlterarPublicacaoAsync(int id, string descricao) { var publicacao = await _publicacaoRepository.ObterAsync(id); //publicacao.Nome = descricao; _publicacaoRepository.Modificar(publicacao); return(await _publicacaoRepository.SaveChangesAsync()); }
public async Task <int> AlterarPublicacaoAsync(int id, DateTime dataInicio, DateTime dataFim, int valor) { var publicacao = await _publicacaoRepository.ObterAsync(id); publicacao.DataInicio = dataInicio; publicacao.DataFim = dataFim; publicacao.Valor = valor; publicacao.AtualizadoEm = DateTime.Now; _publicacaoRepository.Modificar(publicacao); return(await _publicacaoRepository.SaveChangesAsync()); }