예제 #1
0
        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
        }
예제 #2
0
        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
        }