示例#1
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);
        }
示例#2
0
        /// <summary>
        /// Descripción: Método para realizar la autentificación del usuario solicitado.
        /// </summary>
        /// <param name="pobjLoginModel">Instancia del modelo de objeto.</param>
        public LoginModel m_Login(LoginModel pobjLoginModel)
        {
            LoginModel       objclsLoginModel = new LoginModel();
            AccesoBusiness   oAccesoB         = new AccesoBusiness();
            BitacoraBusiness bitacoraBusiness = new BitacoraBusiness();
            clsTblcatlada    oLada            = new clsTblcatlada();

            objclsLoginModel = pobjLoginModel;

            objclsLoginModel.bResult = false;

            try
            {
                oclsLoginBE = new clsLoginBE();

                var sNumero = objclsLoginModel.sUsuarioLogin.Split('_');

                accesoDTO = new AccesoDTO
                {
                    sTelefono = objclsLoginModel.sUsuarioLogin
                };

                if (sNumero.Length > 1)
                {
                    accesoDTO.sTelefono = sNumero[1];
                }

                oclsLoginBE.sLongitud = objclsLoginModel.sLongitud;
                oclsLoginBE.sLatitud  = objclsLoginModel.sLatitud;

                int iIdAcceso = oAccesoB.UserExist(accesoDTO.sTelefono);

                if (iIdAcceso == 0)
                {
                    accesoDTO.iIdAcceso = oAccesoB.saveAcceso(accesoDTO);
                }
                else
                {
                    accesoDTO.iIdAcceso = iIdAcceso;
                }

                if (!oclsLoginBE.ObtenerGeometriaValida(db) && Convert.ToBoolean(ConfigurationManager.AppSettings["bActivarGeolocalizacion"]))
                {
                    throw new ArgumentException(ConfigurationManager.AppSettings["sMensajeGeometria"]);
                }

                if (!Convert.ToBoolean(ConfigurationManager.AppSettings["bActivarGeolocalizacion"]))
                {
                    oLada.ValidarLada(accesoDTO.sTelefono.Substring(0, 3));
                }

                bitacoraBusiness.save(accesoDTO.iIdAcceso, 0, 0, clsEnums.sDescripcionEnum(clsEnums.enumEstatusBitacora.LOGIN), "Inicio login: "******", " + oclsLoginBE.sLongitud);

                objclsLoginModel.bResult = true;
                objclsLoginModel.bAceptoTerminoCondicion = true;
                objclsLoginModel.sTelefonoDRs            = string.IsNullOrEmpty(ConfigurationManager.AppSettings["sTelefono"]) ? "" : ConfigurationManager.AppSettings["sTelefono"].ToString();
                objclsLoginModel.iIdUsuario        = accesoDTO.iIdAcceso;
                objclsLoginModel.rutasIceServer    = getIceLinkServer();
                objclsLoginModel.sMensajeRespuesta = "Login completado exitosamente.";
            }
            catch (Exception ex)
            {
                objclsLoginModel.sMensajeRespuesta = ex.Message;
                bitacoraBusiness.save(accesoDTO.iIdAcceso, 0, 0, clsEnums.sDescripcionEnum(clsEnums.enumEstatusBitacora.ERROR), ex.Message, oclsLoginBE.sLatitud + ", " + oclsLoginBE.sLongitud);
            }

            return(objclsLoginModel);
        }