Esempio n. 1
0
        public async Task <IActionResult> CrearSeccion(int encuestaId, string nombre)
        {
            #region CrearSeccion
            try
            {
                var secciones = await _repository.FindBy <EncuestaSeccion>(x => x.IdEncuesta == encuestaId);

                int orden = 1;
                if (secciones.Any())
                {
                    orden = secciones.OrderBy(x => x.Orden).Last().Orden + 1;
                }
                var newSeccion = new EncuestaSeccion
                {
                    IdEncuesta = encuestaId,
                    Nombre     = nombre,
                    Orden      = orden,
                };
                await _repository.Add <EncuestaSeccion>(newSeccion);

                return(Ok(newSeccion.Id));
            }
            catch (MessageAlertException ex)
            {
                _logger.LogInformation(ex.Message);
                return(BadRequest());
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);
                return(BadRequest());
            }
            #endregion
        }
Esempio n. 2
0
        /// <summary>
        /// Obtiene la vista previa de una sección en especifico.
        /// </summary>
        /// <param name="id">Id de la encuesta</param>
        /// <param name="idSeccion">Id de la sección</param>
        /// <returns></returns>
        public async Task <IActionResult> VistaPrevia(int id, int idSeccion, bool termEnc = false)
        {
            #region VistaPrevia
            try
            {
                ViewBag.TerminarSeccion = termEnc;

                if (!termEnc)
                {
                    EncuestaSeccion encuestaSeccion = null;
                    if (idSeccion == 0)
                    {
                        encuestaSeccion = await _encuestasRepository.GetPrimeraSeccionById(id);
                    }
                    else
                    {
                        encuestaSeccion = await _encuestasRepository.GetSeccionById(idSeccion, id);
                    }

                    if (encuestaSeccion != null)
                    {
                        var secciones = await _encuestasRepository.GetSecciones(id);

                        ViewBag.SeccionAnterior  = secciones.TakeWhile(x => x.Id != encuestaSeccion.Id).LastOrDefault()?.Id ?? 0;
                        ViewBag.SeccionSiguiente = secciones.SkipWhile(x => x.Id != encuestaSeccion.Id).Skip(1).FirstOrDefault()?.Id ?? 0;
                        var seccionViewModel = _mapper.Map <EncuestaSeccionViewModel>(encuestaSeccion);
                        return(View(seccionViewModel));
                    }
                }
                else
                {
                    ViewBag.NombreEncuesta = (await _repository.GetById <Encuesta>(id)).Nombre;
                    return(View());
                }


                ShowMessageInfo(Constantes.Mensajes.Encuesta_msj11);
                return(RedirectToAction(nameof(Editar), new { id }));
            }
            catch (MessageAlertException ex)
            {
                _logger.LogInformation(ex.Message);
                GenerarAlerta(ex);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);
                ShowMessageException(ex.Message);
            }
            return(RedirectToAction(nameof(Index)));

            #endregion
        }