public async Task <Alternativa> PostAlternativa(int tarefaId, int ordem, [FromBody] AlternativaCadastroViewModel model) { var questao = await db.Questoes .Include(d => d.Alternativas) .FirstOrDefaultAsync(d => d.TarefaId == tarefaId && d.Ordem == ordem); if (questao == null) { throw new HttpException(404); } if (model.Correta && questao.Alternativas.Any(d => d.Correta)) { foreach (var alternativa in questao.Alternativas) { alternativa.Correta = false; } } var result = new Alternativa() { Correta = model.Correta, Questao = questao, TextoAlternativa = model.TextoAlternativa }; questao.Alternativas.Add(result); await db.SaveChangesAsync(); return(result); }
public async Task <Alternativa> Put(int id, AlternativaCadastroViewModel model) { var alternativa = await db.Alternativas .Include(d => d.Questao.Tarefa) .FirstOrDefaultAsync(d => d.Id == id); if (alternativa == null) { throw new HttpException(404); } alternativa.TextoAlternativa = model.TextoAlternativa; alternativa.Correta = model.Correta; if (alternativa.Correta && alternativa.Questao.Alternativas.Any(d => d.Correta && d != alternativa)) { foreach (var alt in alternativa.Questao.Alternativas.Where(d => d.Correta && d != alternativa).ToArray()) { alt.Correta = false; } } await db.SaveChangesAsync(); return(alternativa); }
public Alternativa Post([FromBody] AlternativaCadastroViewModel model) { Alternativa alternativa = new Alternativa(); alternativa.textoAlternativa = model.alternativaTexto; alternativa.correta = model.correta; _Db.Alternativas.Add(alternativa); _Db.SaveChanges(); return(alternativa); }