public async Task <int> AdicionarOpcaoAvaliacaoAsync(int questaoId, string descricao, bool verdadeira) { if (verdadeira) { var questao = await _questaoRepository.ObterComOpcoesAsync(questaoId); if (questao.Tipo == 1 && questao.Opcoes.Find(x => x.Verdadeira) != null) { throw new DomainException("Já existe uma opção cadastrada como verdadeira para essa questão!"); } } if (string.IsNullOrWhiteSpace(descricao)) { throw new DomainException("A descrição da opção não pode ser vazia!"); } var opcao = new OpcaoAvaliacao() { Descricao = descricao, QuestaoId = questaoId, Verdadeira = verdadeira }; _opcaoAvaliacaoRepository.Adicionar(opcao); await _opcaoAvaliacaoRepository.SaveChangesAsync(); return(opcao.Id); }
public async Task <int> AdicionarOpcaoAvaliacaoAsync(int questaoId, string descricao, bool verdadeira) { ValidarOpcaoAvaliacao(questaoId, verdadeira); var opcaoAvaliacao = new OpcaoAvaliacao() { QuestaoId = questaoId, Descricao = descricao, Verdadeira = verdadeira }; var questao = await _questaoAvaliacaoRepository.ObterAsync(questaoId); if (questao.Avaliacao.Publicacoes?.Count > 0) { throw new DomainException("Não é permitido alterar uma avaliação que já foi publicada!"); } var erros = opcaoAvaliacao.Validate(); if (erros.Length == 0) { await _opcaoAvaliacaoRepository.AdicionarAsync(opcaoAvaliacao); _opcaoAvaliacaoRepository.SaveChanges(); return(opcaoAvaliacao.Id); } else { throw new DomainException(erros); } }
public async Task <ActionResult <OpcaoAvaliacao> > PostOpcaoAvaliacao(OpcaoAvaliacao item) { _context.OpcaoAvaliacao.Add(item); await _context.SaveChangesAsync(); return(CreatedAtAction(nameof(GetOpcaoAvaliacao), new { id = item.Id }, item)); }
public async Task <IActionResult> PutOpcaoAvaliacao(int id, OpcaoAvaliacao item) { if (id != item.Id) { return(BadRequest()); } _context.Entry(item).State = EntityState.Modified; await _context.SaveChangesAsync(); return(NoContent()); }
public async Task <IActionResult> Edit(int id, [Bind("Id,QuestaoId,Descricao,Verdadeira")] OpcaoAvaliacao opcaoAvaliacao) { if (id != opcaoAvaliacao.Id) { return(NotFound()); } if (ModelState.IsValid) { var result = await _avaliacaoAppService.AlterarOpcaoAvaliacaoAsync(opcaoAvaliacao.Id, opcaoAvaliacao.Descricao, opcaoAvaliacao.Verdadeira); if (result.Success) { return(RedirectToAction(nameof(Index), new { questaoId = opcaoAvaliacao.QuestaoId })); } else { throw result.Exception; } } return(View(opcaoAvaliacao)); }
public async Task <int> AdicionarOpcaoAvaliacaoAsync(int questaoId, string descricao, bool verdadeira) { ValidarOpcaoAvaliacao(questaoId, verdadeira); var opcaoAvaliacao = new OpcaoAvaliacao() { QuestaoId = questaoId, Descricao = descricao, Verdadeira = verdadeira }; var erros = opcaoAvaliacao.Validate(); if (erros.Length == 0) { await _opcaoAvaliacaoRepository.AdicionarAsync(opcaoAvaliacao); _opcaoAvaliacaoRepository.SaveChanges(); return(opcaoAvaliacao.Id); } else { throw new DomainException(erros); } }