Пример #1
0
        /// <summary>
        /// Método que guarda la encuesta
        /// </summary>
        /// <param name="encuestaDTO">EL objeto de la encuesta</param>
        /// <returns>El id del que se inserto.</returns>
        public int save(EncuestaDTO encuestaDTO)
        {
            int i = 0;

            try
            {
                string sProceduce = "sva_SaveEncuesta";

                using (DbCommand dbCommand = database.GetStoredProcCommand(sProceduce))
                {
                    database.AddOutParameter(dbCommand, "iIdEncuesta", DbType.Int16, encuestaDTO.iIdEncuesta);
                    database.AddInParameter(dbCommand, "piIdAcceso", DbType.Int16, encuestaDTO.iIdAcceso);
                    database.AddInParameter(dbCommand, "psTipoFolio", DbType.String, encuestaDTO.sTipoFolio);
                    database.AddInParameter(dbCommand, "psFolio", DbType.String, encuestaDTO.sFolio == null ? "" : encuestaDTO.sFolio);
                    database.AddInParameter(dbCommand, "psCP", DbType.String, encuestaDTO.sCP);
                    database.AddInParameter(dbCommand, "pdtFechaCreacion", DbType.DateTime, encuestaDTO.dtFechaCreacion);

                    database.ExecuteNonQuery(dbCommand);

                    i = Convert.ToInt32(dbCommand.Parameters["iIdEncuesta"].Value);

                    if (i == 0)
                    {
                        throw new ArgumentException("Ocurrio un error inesperado al guardar su encuesta.");
                    }
                }
            }
            catch (Exception e)
            {
                throw e;
            }
            return(i);
        }
Пример #2
0
 public ActionResult AddEncuesta(EncuestaDTO dto)
 {
     if (!this.currentUser())
     {
         return(RedirectToAction("Ingresar"));
     }
     try
     {
         EncuestaBL objBL = new EncuestaBL();
         if (dto.IdEncuesta == 0)
         {
             if (objBL.add(dto))
             {
                 createResponseMessage(CONSTANTES.SUCCESS);
                 return(RedirectToAction("Index"));
             }
             else
             {
                 createResponseMessage(CONSTANTES.ERROR, CONSTANTES.ERROR_UPDATE_MESSAGE);
                 return(RedirectToAction("Index"));
             }
         }
         else if (dto.IdEncuesta != 0)
         {
             if (objBL.update(dto))
             {
                 createResponseMessage(CONSTANTES.SUCCESS);
                 return(RedirectToAction("Encuesta", new { id = dto.IdEncuesta }));
             }
             else
             {
                 createResponseMessage(CONSTANTES.ERROR, CONSTANTES.ERROR_UPDATE_MESSAGE);
             }
         }
         else
         {
             createResponseMessage(CONSTANTES.ERROR, CONSTANTES.ERROR_INSERT_MESSAGE);
         }
     }
     catch
     {
         if (dto.IdEncuesta != 0)
         {
             createResponseMessage(CONSTANTES.ERROR, CONSTANTES.ERROR_UPDATE_MESSAGE);
         }
         else
         {
             createResponseMessage(CONSTANTES.ERROR, CONSTANTES.ERROR_INSERT_MESSAGE);
         }
     }
     TempData["Encuesta"] = dto;
     return(RedirectToAction("Encuesta"));
 }
Пример #3
0
        /// <summary>
        /// Mpetodo que valida el cuestionario
        /// </summary>
        /// <param name="cuestionarioModel">El modelo del cuestionario</param>
        /// <param name="sToken">El token para gobierno</param>
        /// <param name="sURL">La URL del servicio de gobierno</param>
        /// <returns>Una resuesta con los parametros del modelo</returns>
        public ResponseModel ValidarCuestionario(CuestionarioModel cuestionarioModel, string sToken, string sURL)
        {
            ResponseModel responseModel   = new ResponseModel();
            List <string> lstTextDialogos = new List <string>();

            encuestaData     = new EncuestaData();
            BitacoraBusiness = new BitacoraBusiness();

            try
            {
                EncuestaDTO = TipoFolio(cuestionarioModel, sToken, sURL);
                EncuestaDTO.dtFechaCreacion = DateTime.Now;

                EncuestaDTO.iIdEncuesta = encuestaData.save(EncuestaDTO);                                                                                                                                                                                                     //Guardamos el registro de la encuesta
                BitacoraBusiness.save(EncuestaDTO.iIdAcceso, EncuestaDTO.iIdEncuesta, 0, clsEnums.sDescripcionEnum(clsEnums.enumEstatusBitacora.ENCUESTA), "Su tipo de folio es: " + EncuestaDTO.sTipoFolio, cuestionarioModel.sLatitud + "," + cuestionarioModel.sLongitud); //Se guarda el registro en la bitacora

                responseModel.sFolio = EncuestaDTO.sFolio;

                if (EncuestaDTO.sFolio != null)
                {
                    lstTextDialogos.Add(ConfigurationManager.AppSettings["sTituloFolio"].Replace("\\n", "\n"));
                    lstTextDialogos.Add(ConfigurationManager.AppSettings["sSubTituloUno"].Replace("\\n", "\n"));
                    lstTextDialogos.Add(EncuestaDTO.sFolio + ConfigurationManager.AppSettings["sSubTituloDos"].Replace("\\n", "\n"));
                    lstTextDialogos.Add(ConfigurationManager.AppSettings["sSubTituloTres"].Replace("\\n", "\n"));
                    lstTextDialogos.Add(ConfigurationManager.AppSettings["sSubTituloCuatro"].Replace("\\n", "\n"));
                    lstTextDialogos.Add(ConfigurationManager.AppSettings["sSubTituloCinco"].Replace("\\n", "\n"));

                    responseModel.bTipoFolio = true;
                }
                else
                {
                    lstTextDialogos.Add(ConfigurationManager.AppSettings["sTituloFolioSinFolio"].Replace("\\n", "\n"));
                    lstTextDialogos.Add(ConfigurationManager.AppSettings["sSubTituloUnoSinFolio"].Replace("\\n", "\n"));
                    lstTextDialogos.Add(ConfigurationManager.AppSettings["sSubTituloDosSinFolio"].Replace("\\n", "\n"));
                    lstTextDialogos.Add(ConfigurationManager.AppSettings["sSubTituloTresSinFolio"].Replace("\\n", "\n"));
                    lstTextDialogos.Add(ConfigurationManager.AppSettings["sSubTituloCuatroSinFolio"].Replace("\\n", "\n"));
                    lstTextDialogos.Add(ConfigurationManager.AppSettings["sSubTituloCincoSinFolio"].Replace("\\n", "\n"));

                    responseModel.bTipoFolio = false;
                }
                responseModel.sParameter1 = JsonConvert.SerializeObject(lstTextDialogos);
            }
            catch (Exception e)
            {
                throw e;
            }
            return(responseModel);
        }
Пример #4
0
 /// <summary>
 /// Replica varias encuestas para un periodo
 /// </summary>
 /// <param name="encuestaDTO"></param>
 /// <returns></returns>
 public bool add(EncuestaDTO encuestaDTO)
 {
     using (var context = getContext())
     {
         try
         {
             context.SP_ReplicaEncuesta(encuestaDTO.IdPeriodo);
             return(true);
         }
         catch (Exception e)
         {
             //throw e;
             return(false);
         }
     }
 }
Пример #5
0
        public ActionResult Encuesta(int?id = null)
        {
            var objSent = (EncuestaDTO)TempData["Encuesta"];

            if (objSent != null)
            {
                TempData["Encuesta"] = null;
                return(View(objSent));
            }
            if (id != null)
            {
                EncuestaBL  objBL = new EncuestaBL();
                EncuestaDTO obj   = objBL.getEncuesta((int)id);
                return(View(obj));
            }
            return(View());
        }
Пример #6
0
        public ActionResult ReportesDetalle(int?id = null)
        {
            if (!this.currentUser())
            {
                return(RedirectToAction("Ingresar"));
            }
            if (!this.isAdministrator())
            {
                return(RedirectToAction("Index"));
            }
            EncuestaBL encuestaBL = new EncuestaBL();
            var        model      = new EncuestaDTO();

            if (id != null)
            {
                model = encuestaBL.getEncuestaReporteDetalle((int)id);
                Session["reporte"] = model;
            }
            return(View(model));
        }
Пример #7
0
        public bool update(EncuestaDTO encuestaDTO)
        {
            using (var context = getContext())
            {
                try
                {
                    var encuesta = context.Encuesta.Where(x => x.IdEncuesta == encuestaDTO.IdEncuesta).SingleOrDefault();
                    encuesta.Nombre        = encuestaDTO.NombreEncuesta;
                    encuesta.Instrucciones = encuestaDTO.Instrucciones;
                    encuesta.Leyenda       = encuestaDTO.Leyenda;
                    encuesta.Estado        = encuestaDTO.EstadoEncuesta;
                    //encuesta.IdPeriodo = encuestaDTO.IdPeriodo;
                    encuesta.IdGrupoEvaluado = encuestaDTO.IdGrupoEvaluado;
                    encuesta.EstadoProceso   = "En proceso";//encuestaDTO.EstadoEncuesta;
                    encuesta.FechaInicio     = encuestaDTO.FechaInicio;
                    encuesta.FechaCierre     = encuestaDTO.FechaCierre;
                    var oldGrupos = encuesta.GrupoTrabajo1.Select(x => x.IdGrupoTrabajo).ToList();
                    var newGrupos = encuestaDTO.GrupoEvaluador != null?encuestaDTO.GrupoEvaluador.Select(x => x).ToList() : new List <int>();

                    var gruposToRemove = oldGrupos.Except(newGrupos).ToList();
                    var gruposToAdd    = newGrupos.Except(oldGrupos).ToList();
                    foreach (var group in gruposToRemove)
                    {
                        var grupo = context.GrupoTrabajo.Where(x => x.IdGrupoTrabajo == group).SingleOrDefault();
                        encuesta.GrupoTrabajo1.Remove(grupo);
                    }
                    foreach (var group in gruposToAdd)
                    {
                        var grupo = context.GrupoTrabajo.Where(x => x.IdGrupoTrabajo == group).SingleOrDefault();
                        encuesta.GrupoTrabajo1.Add(grupo);
                    }
                    context.SaveChanges();
                    return(true);
                }
                catch (Exception e)
                {
                    //throw e;
                    return(false);
                }
            }
        }
Пример #8
0
 public ActionResult AddEncuesta(EncuestaDTO dto)
 {
     if (!this.currentUser()) { return RedirectToAction("Ingresar"); }
     try
     {
         EncuestaBL objBL = new EncuestaBL();
         if (dto.IdEncuesta == 0)
         {
             if (objBL.add(dto))
             {
                 createResponseMessage(CONSTANTES.SUCCESS);
                 return RedirectToAction("Index");
             }
             else
             {
                 createResponseMessage(CONSTANTES.ERROR, CONSTANTES.ERROR_UPDATE_MESSAGE);
                 return RedirectToAction("Index");
             }
         }
         else if (dto.IdEncuesta != 0)
         {
             if (objBL.update(dto))
             {
                 createResponseMessage(CONSTANTES.SUCCESS);
                 return RedirectToAction("Encuesta", new { id = dto.IdEncuesta });
             }
             else
                 createResponseMessage(CONSTANTES.ERROR, CONSTANTES.ERROR_UPDATE_MESSAGE);
         }
         else
             createResponseMessage(CONSTANTES.ERROR, CONSTANTES.ERROR_INSERT_MESSAGE);
     }
     catch
     {
         if (dto.IdEncuesta != 0) createResponseMessage(CONSTANTES.ERROR, CONSTANTES.ERROR_UPDATE_MESSAGE);
         else createResponseMessage(CONSTANTES.ERROR, CONSTANTES.ERROR_INSERT_MESSAGE);
     }
     TempData["Encuesta"] = dto;
     return RedirectToAction("Encuesta");
 }
Пример #9
0
        /// <summary>
        /// Método que hace una consulta al servicio de gobierno y retorna el tipo de Folio
        /// </summary>
        /// <param name="oCuestionario">La peticion que llega</param>
        /// <param name="sToken">El token para gobierno</param>
        /// <param name="sURL">La URL del servicio de gobierno</param>
        /// <returns>Un objeto tipo encuesta</returns>
        public EncuestaDTO TipoFolio(CuestionarioModel oCuestionario, string sToken, string sURL)
        {
            var                sParametros   = new NameValueCollection();
            WebClient          oConsumo      = new WebClient();
            clsTblcodigopostal oCodigoPostal = new clsTblcodigopostal();
            clsTblcatlada      oLada         = new clsTblcatlada();
            EncuestaDTO        encuestaDTO   = new EncuestaDTO();

            AccesoBusiness = new AccesoBusiness();

            try
            {
                if (oCuestionario.sError == null)
                {
                    oCuestionario.sError = "";
                }

                sParametros.Add("unidad_notificante", "MEDITOC");

                foreach (var item in oCuestionario.lstPreguntas)
                {
                    if (item.sNombre != null)
                    {
                        if (item.sParam == "cp")
                        {
                            encuestaDTO.sCP = item.sNombre;
                            oCodigoPostal.ValidarCP(item.sNombre);
                        }

                        if (item.sParam == "telefono")
                        {
                            if (!Convert.ToBoolean(ConfigurationManager.AppSettings["bActivarGeolocalizacion"]))
                            {
                                oLada.ValidarLada(item.sNombre);
                            }

                            int iIdAcceso = AccesoBusiness.UserExist(item.sNombre);

                            if (iIdAcceso == 0)
                            {
                                AccesoDTO accesoDTO = new AccesoDTO
                                {
                                    sTelefono       = item.sNombre,
                                    dtFechaCreacion = DateTime.Now
                                };

                                AccesoBusiness.saveAcceso(accesoDTO);
                            }

                            encuestaDTO.iIdAcceso = iIdAcceso;
                        }

                        sParametros.Add(item.sParam, item.sNombre);
                    }
                    else
                    {
                        sParametros.Add(item.sParam, item.bPrecionado.ToString());
                    }
                }

                oConsumo.Headers.Set("token", sToken);

                var     Json = oConsumo.UploadValues(sURL, "POST", sParametros);
                dynamic m    = JsonConvert.DeserializeObject(Encoding.ASCII.GetString(Json));
                encuestaDTO.sFolio     = m.data.FolioApp;
                encuestaDTO.sTipoFolio = m.data.FolioApp == null ? "Tipo 1" : "Tipo 2";//Comprobamos que tipo de folio es
            }
            catch (Exception e)
            {
                throw e;
            }

            return(encuestaDTO);
        }
Пример #10
0
 public ActionResult ReportesDetalle(int? id = null)
 {
     if (!this.currentUser()) { return RedirectToAction("Ingresar"); }
     if (!this.isAdministrator()) { return RedirectToAction("Index"); }
     EncuestaBL encuestaBL = new EncuestaBL();
     var model = new EncuestaDTO();
     if (id != null)
     {
         model = encuestaBL.getEncuestaReporteDetalle((int)id);
         Session["reporte"] = model;
     }
     return View(model);
 }