예제 #1
0
        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);
            }
        }
예제 #2
0
        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);
        }
예제 #3
0
        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());
        }
예제 #4
0
        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());
        }