public async Task <int> AlterarOpcaoAvaliacaoAsync(int id, string descricao, bool verdadeira) { var opcaoAvaliacao = await _opcaoAvaliacaoRepository.ObterAsync(id); if (opcaoAvaliacao.Questao.Avaliacao.Publicacoes?.Count > 0) { throw new DomainException("Não é permitido alterar uma avaliação que já foi publicada!"); } ValidarOpcaoAvaliacao(opcaoAvaliacao.QuestaoId, verdadeira); opcaoAvaliacao.Descricao = descricao; opcaoAvaliacao.Verdadeira = verdadeira; var erros = opcaoAvaliacao.Validate(); if (erros.Length == 0) { _opcaoAvaliacaoRepository.Modificar(opcaoAvaliacao); return(_opcaoAvaliacaoRepository.SaveChanges()); } else { throw new DomainException(erros); } }
public async Task <IActionResult> Edit(int?id) { if (id == null) { return(NotFound()); } var opcaoAvaliacao = await _opcaoAvaliacaoRepository.ObterAsync(id.Value); if (opcaoAvaliacao == null) { return(NotFound()); } return(View(opcaoAvaliacao)); }
public async Task <int> AlterarOpcaoAvaliacaoAsync(int id, string descricao, bool verdadeira) { var opcao = await _opcaoAvaliacaoRepository.ObterAsync(id); if (opcao == null) { throw new DomainException("A opção não foi encontrada!"); } if (verdadeira) { var questao = await _questaoRepository.ObterComOpcoesAsync(opcao.QuestaoId); if (questao.Tipo == 1 && questao.Opcoes.Find(x => x.Id != id && x.Verdadeira) != null) { throw new DomainException("Já existe uma opção cadastrada como verdadeira para essa questão!"); } } opcao.Descricao = descricao; opcao.Verdadeira = verdadeira; _opcaoAvaliacaoRepository.Modificar(opcao); await _opcaoAvaliacaoRepository.SaveChangesAsync(); return(opcao.QuestaoId); }
public async Task <IActionResult> Edit(int?id) { if (id == null) { return(NotFound()); } var result = await _opcaoAvaliacaoRepository.ObterAsync(id.Value); if (result == null) { return(NotFound()); } var opcao = Mapper.Map <OpcaoAvaliacaoViewModel>(result); return(View(opcao)); }
public async Task <int> AlterarOpcaoAvaliacaoAsync(int id, string descricao, bool verdadeira) { var opcaoAvaliacao = await _opcaoAvaliacaoRepository.ObterAsync(id); ValidarOpcaoAvaliacao(opcaoAvaliacao.QuestaoId, verdadeira); opcaoAvaliacao.Descricao = descricao; opcaoAvaliacao.Verdadeira = verdadeira; var erros = opcaoAvaliacao.Validate(); if (erros.Length == 0) { _opcaoAvaliacaoRepository.Modificar(opcaoAvaliacao); return(_opcaoAvaliacaoRepository.SaveChanges()); } else { throw new DomainException(erros); } }