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 }
/// <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 }