public int Atualizar(PerguntaDto perguntaDto, int id) { try{ var pergunta = _context.Perguntas.FirstOrDefault(x => x.Id == id); pergunta.Pergunta = perguntaDto.Pergunta; _context.Perguntas.Update(pergunta); //Encontrar alternativas referentes à pergunta var alternativas = _context.Alternativas .Where(x => x.PerguntaId == pergunta.Id) .ToList(); //excluir alternativas já cadastradas foreach (var alternativa in alternativas) { _context.Remove(alternativa); } //inserir novas alternativas var novasAlternativas = perguntaDto.Alternativas; foreach (var novaAlternativa in novasAlternativas) { AlternativaDomain alternativa = new AlternativaDomain(); alternativa.Resposta = novaAlternativa; alternativa.Pergunta = pergunta; _context.Alternativas.Add(alternativa); } return(_context.SaveChanges()); } catch (Exception e) { throw new Exception(e.Message); } }
private static void MapearRespostas(PerguntaDto pergunta, IEnumerable <PerguntaResposta> respostasDaPergunta) { pergunta.Respostas = respostasDaPergunta.Select(perguntaResposta => new RespostaDto { Descricao = perguntaResposta.Resposta.Descricao, Id = perguntaResposta.Resposta.Id, Ordenacao = perguntaResposta.Ordenacao }); }
private static IEnumerable <PerguntaResposta> ObterRespostaDaPergunta(PerguntaDto pergunta, List <PerguntaResposta> perguntasResposta) { var respostasDaPergunta = perguntasResposta.Where(perguntaResposta => perguntaResposta.Pergunta.Id.Equals(pergunta.Id)); if (respostasDaPergunta == null || !respostasDaPergunta.Any()) { throw new Exception($"Não foi possivel obter as respostas da pergunta '{pergunta.Descricao}'"); } return(respostasDaPergunta); }
public IActionResult Adicionar(PerguntaDto perguntaModel) { try{ var pergunta = _mapper.Map <Pergunta>(perguntaModel); _perguntaRepositorio.Adicionar(pergunta); return(Created($"v1/obterporid/{pergunta.Id}", _mapper.Map <PerguntaDto>(pergunta))); } catch (System.Exception) { return(this.StatusCode(StatusCodes.Status500InternalServerError, "Banco de Dados Falou")); } }
public IActionResult Cadastrar([FromBody] PerguntaDto perguntaDto) { try{ var s = _repo.Inserir(perguntaDto); if (s == 0) { return(BadRequest("Erro no cadastro de pergunta")); } return(Ok("Pergunta cadastrada")); } catch (Exception e) { throw new Exception(e.Message); } }
public IActionResult Atualizar([FromBody] PerguntaDto perguntaDto, int id) { try{ var s = _repo.Atualizar(perguntaDto, id); if (s == 0) { return(BadRequest("Problema ao tentar atualizar pergunta")); } return(Ok("Pergunta e alternativas atualizadas")); } catch (Exception e) { throw new Exception(e.Message); } }
public IActionResult Atualizar(int PerguntaId, PerguntaDto perguntaModel) { try{ var pergunta = _perguntaRepositorio.ObterPorId(PerguntaId).Result; if (pergunta == null) { return(NotFound()); } _perguntaRepositorio.Atualizar(pergunta); var result = _mapper.Map <PerguntaDto>(pergunta); return(Created($"api/pergunta/v1/obterporid/{result.Id}", result)); } catch (System.Exception) { return(this.StatusCode(StatusCodes.Status500InternalServerError, "Banco de Dados Falou")); } }
public async Task <ActionResult> PostPerguntasAsync([FromBody] PerguntaDto dados) { var pergunta = new Pergunta { Descricao = dados.Descricao, IdTipoPergunta = dados.IdTipoPergunta, OpcaoRespostaPergunta = dados.Alternativas.Select(a => new OpcaoRespostaPergunta() { Opcao = a.Texto }).ToList(), }; db.Pergunta.Add(pergunta); await db.SaveChangesAsync(); return(NoContent()); }
public int Inserir(PerguntaDto perguntaDto) { try{ PerguntaDomain pergunta = new PerguntaDomain(); pergunta.Pergunta = perguntaDto.Pergunta; _context.Perguntas.Add(pergunta); foreach (var item in perguntaDto.Alternativas) { AlternativaDomain alternativa = new AlternativaDomain(); alternativa.Resposta = item; alternativa.Pergunta = pergunta; _context.Alternativas.Add(alternativa); } return(_context.SaveChanges()); } catch (Exception e) { throw new Exception(e.Message); } }
/// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='dados'> /// </param> /// <param name='cancellationToken'> /// The cancellation token. /// </param> public static async Task PostPerguntasAsync(this IColetaApiClient operations, PerguntaDto dados = default(PerguntaDto), CancellationToken cancellationToken = default(CancellationToken)) { await operations.PostPerguntasWithHttpMessagesAsync(dados, null, cancellationToken).ConfigureAwait(false); }
/// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='dados'> /// </param> public static void PostPerguntas(this IColetaApiClient operations, PerguntaDto dados = default(PerguntaDto)) { Task.Factory.StartNew(s => ((IColetaApiClient)s).PostPerguntasAsync(dados), operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult(); }