public async Task <IActionResult> CrearPregunta(EncuestaPreguntaViewModel model) { #region EditarNombreDescripcion try { var newPregunta = _mapper.Map <EncuestaPregunta>(model); var orden = 1; var preguntas = await _repository.FindBy <EncuestaPregunta>(x => x.IdEncuesta == model.IdEncuesta && x.IdEncuestaSeccion == model.IdEncuestaSeccion && !x.Eliminado, x => x.OrderByDescending(x => x.Orden)); if (preguntas.Any()) { orden = preguntas.First().Orden + 1; } newPregunta.Orden = orden; await _repository.Add <EncuestaPregunta>(newPregunta); return(Ok(newPregunta.Id)); } catch (MessageAlertException ex) { _logger.LogInformation(ex.Message); } catch (Exception ex) { _logger.LogError(ex.Message); } return(BadRequest()); #endregion }
public async Task <IActionResult> EditarPregunta(EncuestaPreguntaViewModel model) { #region EditarNombreDescripcion try { var pregunta = await _repository.FirstOrDefault <EncuestaPregunta>(x => x.Id == model.Id, x => x.Opciones); if (model.IdTipoPregunta == (int)TipoPreguntaId.Multiple || model.IdTipoPregunta == (int)TipoPreguntaId.SelectList || model.IdTipoPregunta == (int)TipoPreguntaId.UnicaOpcion) { var idsOpcionesSinEliminar = model.Opciones.Select(x => x.Id); var preguntassss = pregunta.Opciones.Where(x => !idsOpcionesSinEliminar.Contains(x.Id)).ToList();//.ForEach(x => x.Eliminado = true); model.Opciones.ToList().ForEach(x => { if (x.Id != 0) { var opcionEditar = pregunta.Opciones.FirstOrDefault(y => y.Id == x.Id); opcionEditar.Descripcion = x.Descripcion; opcionEditar.Orden = x.Orden; } else { var nuevaOpcion = _mapper.Map <EncuestaPreguntaOpcion>(x); pregunta.Opciones.Add(nuevaOpcion); } }); } pregunta.Descripcion = model.Descripcion; pregunta.Obligatoria = model.Obligatoria; await _repository.Update <EncuestaPregunta>(pregunta); return(Ok(model.Id)); } catch (MessageAlertException ex) { _logger.LogInformation(ex.Message); } catch (Exception ex) { _logger.LogError(ex.Message); } return(BadRequest()); #endregion }