예제 #1
0
        /// <summary>
        /// Función: Valida si un cupón ya ha sido aplicado por un usuario al momento de realizar la compra
        /// Creado: Cristopher Noh 28/07/2020
        /// Modificado:
        /// </summary>
        /// <param name="piIdCupon">ID del cupón</param>
        /// <param name="psEmail">Correo del cliente que aplica</param>
        /// <returns></returns>
        public IMDResponse <bool> BGetCuponUsed(int piIdCupon, string psEmail)
        {
            IMDResponse <bool> response = new IMDResponse <bool>();

            string metodo = nameof(this.BGetCuponUsed);

            logger.Info(IMDSerialize.Serialize(67823458214596, $"Inicia {metodo}(int piIdCupon, string psEmail)", piIdCupon, psEmail));

            try
            {
                if (piIdCupon <= 0 || string.IsNullOrWhiteSpace(psEmail))
                {
                    response.Code    = 67823458234021;
                    response.Message = "No se ingresaron datos completos";
                    return(response);
                }

                IMDResponse <DataTable> respuestaValidarCuponEmail = datPromociones.DGetCuponUsed(piIdCupon, psEmail);
                if (respuestaValidarCuponEmail.Code != 0)
                {
                    return(respuestaValidarCuponEmail.GetResponse <bool>());
                }

                if (respuestaValidarCuponEmail.Result.Rows.Count > 0)
                {
                    response.Code    = 0;
                    response.Result  = false;
                    response.Message = "El usuario ya ha aplicado este código.";
                }
                else
                {
                    response.Code    = 0;
                    response.Result  = true;
                    response.Message = "Código aplicable al usuario.";
                }
            }
            catch (Exception ex)
            {
                response.Code    = 67823458215373;
                response.Message = "Ocurrió un error inesperado al verificar el código aplicado.";

                logger.Error(IMDSerialize.Serialize(67823458215373, $"Error en {metodo}(int piIdCupon, string psEmail): {ex.Message}", piIdCupon, psEmail, ex, response));
            }
            return(response);
        }
예제 #2
0
        /// <summary>
        /// Guarda un submódulo del sistema
        /// </summary>
        /// <param name="entSubModulo"></param>
        /// <returns></returns>
        public IMDResponse <bool> BSaveSubModulo(EntSubModulo entSubModulo)
        {
            IMDResponse <bool> response = new IMDResponse <bool>();

            string metodo = nameof(this.BSaveSubModulo);

            logger.Info(IMDSerialize.Serialize(67823458189732, $"Inicia {metodo}(EntSubModulo entSubModulo)", entSubModulo));

            try
            {
                if (entSubModulo == null)
                {
                    response.Code    = -87687687263498;
                    response.Message = "No se ingresó información para guardar el submódulo.";
                    response.Result  = false;
                    return(response);
                }

                response = BValidaDatos(entSubModulo);

                if (response.Code != 0)
                {
                    return(response);
                }

                response = datSubmodulo.DSaveSubModulo(entSubModulo);
                if (response.Code != 0)
                {
                    return(response);
                }

                response.Code    = 0;
                response.Message = entSubModulo.iIdSubModulo == 0 ? "El submódulo ha sido guardado correctamente." : !entSubModulo.bActivo ? "El submódulo ha sido eliminado correctamente." : "El submódulo ha sido actualizado correctamente.";
                response.Result  = true;
            }
            catch (Exception ex)
            {
                response.Code    = 67823458190509;
                response.Message = "Ocurrió un error al intentar guardar el submódulo.";

                logger.Error(IMDSerialize.Serialize(67823458190509, $"Error en {metodo}(EntSubModulo entSubModulo): {ex.Message}", entSubModulo, ex, response));
            }
            return(response);
        }
예제 #3
0
        public IMDResponse <bool> DSaveColaborador(EntCreateColaborador entCreateColaborador)
        {
            IMDResponse <bool> response = new IMDResponse <bool>();

            string metodo = nameof(this.DSaveColaborador);

            logger.Info(IMDSerialize.Serialize(67823458456243, $"Inicia {metodo}(EntCreateColaborador entCreateColaborador)", entCreateColaborador));

            try
            {
                using (DbCommand dbCommand = database.GetStoredProcCommand(spSaveColaborador))
                {
                    database.AddInParameter(dbCommand, "piIdColaborador", DbType.Int32, entCreateColaborador.iIdColaborador);
                    database.AddInParameter(dbCommand, "piIdTipoDoctor", DbType.Int32, entCreateColaborador.iIdTipoDoctor);
                    database.AddInParameter(dbCommand, "piIdEspecialidad", DbType.Int32, entCreateColaborador.iIdEspecialidad);
                    database.AddInParameter(dbCommand, "piIdUsuarioCGU", DbType.Int32, entCreateColaborador.iIdUsuarioCGU);
                    database.AddInParameter(dbCommand, "piIdTipoCuenta", DbType.Int32, entCreateColaborador.iIdTipoCuenta);
                    database.AddInParameter(dbCommand, "piNumSala", DbType.Int32, entCreateColaborador.iNumSala);
                    database.AddInParameter(dbCommand, "psNombre", DbType.String, entCreateColaborador.sNombreDirectorio);
                    database.AddInParameter(dbCommand, "psNombreConsultorio", DbType.String, entCreateColaborador.sNombreConsultorio);
                    database.AddInParameter(dbCommand, "psCedulaProfecional", DbType.String, entCreateColaborador.sCedulaProfecional);
                    database.AddInParameter(dbCommand, "psTelefono", DbType.String, entCreateColaborador.sTelefonoDirectorio);
                    database.AddInParameter(dbCommand, "psWhatsApp", DbType.String, entCreateColaborador.sWhatsApp);
                    database.AddInParameter(dbCommand, "psCorreo", DbType.String, entCreateColaborador.sCorreoDirectorio);
                    database.AddInParameter(dbCommand, "psDireccionConsultorio", DbType.String, entCreateColaborador.sDireccionConsultorio);
                    database.AddInParameter(dbCommand, "psRFC", DbType.String, entCreateColaborador.sRFC);
                    database.AddInParameter(dbCommand, "psURL", DbType.String, entCreateColaborador.sURL);
                    database.AddInParameter(dbCommand, "psMaps", DbType.String, entCreateColaborador.sMaps);
                    database.AddInParameter(dbCommand, "piIdUsuarioMod", DbType.Int32, entCreateColaborador.iIdUsuarioMod);
                    database.AddInParameter(dbCommand, "pbActivo", DbType.Boolean, entCreateColaborador.bActivo);
                    database.AddInParameter(dbCommand, "pbBaja", DbType.Boolean, entCreateColaborador.bBaja);

                    response = imdCommonData.DExecute(database, dbCommand);
                }
            }
            catch (Exception ex)
            {
                response.Code    = 67823458457020;
                response.Message = "Ocurrió un error inesperado en la base de datos al guardar el colaborador.";

                logger.Error(IMDSerialize.Serialize(67823458457020, $"Error en {metodo}(EntCreateColaborador entCreateColaborador): {ex.Message}", entCreateColaborador, ex, response));
            }
            return(response);
        }
예제 #4
0
        /// <summary>
        /// Función: Obtiene el GUID de la orden previamente almacenada
        /// Creado: Cristopher Noh 03/07/2020
        /// Modificado:
        /// </summary>
        /// <param name="psOrderId">ID de orden Conekta</param>
        /// <returns></returns>
        public IMDResponse <Guid> BGetOrderGuid(string psOrderId)
        {
            IMDResponse <Guid> response = new IMDResponse <Guid>();

            string metodo = nameof(this.BGetOrderGuid);

            logger.Info(IMDSerialize.Serialize(67823458160206, $"Inicia {metodo}(string psOrderId)", psOrderId));

            try
            {
                if (string.IsNullOrEmpty(psOrderId))
                {
                    response.Code    = 67823458219258;
                    response.Message = "No se ha podido determinar el ID de la orden.";
                    return(response);
                }

                IMDResponse <DataTable> respuestaGetOrderDB = datOrder.DGetOrder(psOrderId);
                if (respuestaGetOrderDB.Code != 0)
                {
                    return(respuestaGetOrderDB.GetResponse <Guid>());
                }
                if (respuestaGetOrderDB.Result.Rows.Count < 1)
                {
                    response.Code    = 67823458220035;
                    response.Message = "No se encontró la orden en la base de datos.";
                    return(response);
                }

                Guid uID = new Guid(respuestaGetOrderDB.Result.Rows[0]["uId"].ToString());

                response.Code    = 0;
                response.Message = "uId obtenido";
                response.Result  = uID;
            }
            catch (Exception ex)
            {
                response.Code    = 67823458160983;
                response.Message = "Ocurrió un error inesperado al consultar el detalle de orden.";

                logger.Error(IMDSerialize.Serialize(67823458160983, $"Error en {metodo}(string psOrderId): {ex.Message}", psOrderId, ex, response));
            }
            return(response);
        }
예제 #5
0
        /// <summary>
        /// Guardar un perfil
        /// </summary>
        /// <param name="entPerfil"></param>
        /// <returns></returns>
        public IMDResponse <bool> BSavePerfil(EntPerfil entPerfil)
        {
            IMDResponse <bool> response = new IMDResponse <bool>();

            string metodo = nameof(this.BSavePerfil);

            logger.Info(IMDSerialize.Serialize(67823458341247, $"Inicia {metodo}(EntPerfil entPerfil)", entPerfil));

            try
            {
                if (entPerfil == null)
                {
                    response.Code    = -88678716283680;
                    response.Message = "No se ingresó información para guardar el perfil.";
                    response.Result  = false;
                    return(response);
                }

                response = BValidaDatos(entPerfil);

                if (response.Code != 0) //Se valida que los datos que contiene el objeto de perfil no esten vacios.
                {
                    return(response);
                }

                response = datPerfil.DSavePerfil(entPerfil); //Se hace el guardado del perfil
                if (response.Code != 0)
                {
                    return(response);
                }

                response.Code    = 0;
                response.Message = entPerfil.iIdPerfil == 0 ? "El perfil ha sido guardado correctamente." : !entPerfil.bActivo ? "El perfil ha sido eliminado correctamente." : "El perfil ha sido actualizado correctamente.";
                response.Result  = true;
            }
            catch (Exception ex)
            {
                response.Code    = 67823458341247;
                response.Message = "Ocurrió un error al intentar guardar el perfil.";

                logger.Error(IMDSerialize.Serialize(67823458341247, $"Error en {metodo}(EntPerfil entPerfil): {ex.Message}", entPerfil, ex, response));
            }
            return(response);
        }
예제 #6
0
        /// <summary>
        /// Iniciar la consulta seteando la fecha de inicio de una consulta proporcionada
        /// </summary>
        /// <param name="iIdConsulta"></param>
        /// <param name="iIdColaborador"></param>
        /// <param name="iIdUsuarioMod"></param>
        /// <returns></returns>
        public IMDResponse <bool> BIniciarConsulta(int iIdConsulta, int iIdColaborador, int iIdUsuarioMod)
        {
            IMDResponse <bool> response = new IMDResponse <bool>();

            string metodo = nameof(this.BIniciarConsulta);

            logger.Info(IMDSerialize.Serialize(67823458526173, $"Inicia {metodo}(int iIdConsulta, int iIdColaborador, int iIdUsuarioMod)", iIdConsulta, iIdColaborador, iIdUsuarioMod));

            try
            {
                if (iIdConsulta == 0)
                {
                    response.Code    = -8793487583457;
                    response.Message = "La información para iniciar la consulta está incompleta.";
                    return(response);
                }

                EntConsulta entConsulta = new EntConsulta
                {
                    iIdConsulta           = iIdConsulta,
                    dtFechaConsultaInicio = DateTime.Now,
                    iIdEstatusConsulta    = (int)EnumEstatusConsulta.EnConsulta
                };

                //Actualizar fecha de inicio de consulta
                IMDResponse <EntConsulta> resSaveConsulta = busConsulta.BSaveConsulta(entConsulta, iIdUsuarioMod);
                if (resSaveConsulta.Code != 0)
                {
                    return(resSaveConsulta.GetResponse <bool>());
                }

                response.Code    = 0;
                response.Message = "La consulta ha iniciado.";
                response.Result  = true;
            }
            catch (Exception ex)
            {
                response.Code    = 67823458526950;
                response.Message = "Ocurrió un error inesperado al iniciar la consulta.";

                logger.Error(IMDSerialize.Serialize(67823458526950, $"Error en {metodo}(int iIdConsulta, int iIdColaborador, int iIdUsuarioMod): {ex.Message}", iIdConsulta, iIdColaborador, iIdUsuarioMod, ex, response));
            }
            return(response);
        }
예제 #7
0
        public IMDResponse <List <EntIceLinkServer> > BGetIceLinkServer()
        {
            IMDResponse <List <EntIceLinkServer> > response = new IMDResponse <List <EntIceLinkServer> >();
            List <EntIceLinkServer> iceLinkServers;
            EntIceLinkServer        oIceLinkServers;

            string metodo = nameof(this.BGetIceLinkServer);

            logger.Info(IMDSerialize.Serialize(67823458465567, $"Inicia {metodo}"));

            try
            {
                string sIceLinkServer = ConfigurationManager.AppSettings["sIceLinkServers"].ToString();
                iceLinkServers = new List <EntIceLinkServer>();
                string[] oServer = sIceLinkServer.Split('|');

                foreach (var item in oServer)
                {
                    string[] oDatos = item.Split(',');

                    oIceLinkServers = new EntIceLinkServer
                    {
                        sServer   = oDatos[0],
                        sUser     = oDatos[1],
                        sPassword = oDatos[2]
                    };

                    iceLinkServers.Add(oIceLinkServers);
                }

                response.Code   = 0;
                response.Result = iceLinkServers;
            }
            catch (Exception ex)
            {
                response.Code    = 67823458466344;
                response.Message = "Ocurrió un error inesperado";

                logger.Error(IMDSerialize.Serialize(67823458466344, $"Error en {metodo}: {ex.Message}", ex, response));
            }
            return(response);
        }
예제 #8
0
        /// <summary>
        /// Guarda la foto del colaborador
        /// </summary>
        /// <param name="piIdColaborador"></param>
        /// <param name="piIdUsuarioMod"></param>
        /// <param name="pFoto"></param>
        /// <returns></returns>
        public IMDResponse <bool> BSaveColaboradorFoto(int piIdColaborador, int piIdUsuarioMod, Stream pFoto)
        {
            IMDResponse <bool> response = new IMDResponse <bool>();

            string metodo = nameof(this.BSaveColaboradorFoto);

            logger.Info(IMDSerialize.Serialize(67823458479553, $"Inicia {metodo}(int piIdColaborador, int piIdUsuarioMod, Stream pFoto)", piIdColaborador, piIdUsuarioMod));

            try
            {
                using (MemoryStream ms = new MemoryStream())
                {
                    pFoto.CopyTo(ms);
                    byte[] foto = ms.ToArray();
                    if (foto.Length == 0)
                    {
                        response.Code    = -2318178987823;
                        response.Message = "El archivo esta dañado o no se cargó correctamente.";
                        return(response);
                    }

                    //Guardar/actualizar la foto del colaborador
                    IMDResponse <bool> respuestaSaveFoto = datColaborador.DSaveColaboradorFoto(piIdColaborador, piIdColaborador, foto);
                    if (respuestaSaveFoto.Code != 0)
                    {
                        return(respuestaSaveFoto);
                    }
                }

                response.Code    = 0;
                response.Message = "La foto del colaborador ha sido guardado correctamente.";
                response.Result  = true;
            }
            catch (Exception ex)
            {
                response.Code    = 67823458480330;
                response.Message = "Ocurrió un error inesperado al guardar la foto del colaborador.";

                logger.Error(IMDSerialize.Serialize(67823458480330, $"Error en {metodo}(int piIdColaborador, int piIdUsuarioMod, Stream pFoto): {ex.Message}", piIdColaborador, piIdUsuarioMod, ex, response));
            }
            return(response);
        }
예제 #9
0
        public IMDResponse <DataTable> DSaveUsuario(EntUsuario entUsuario)
        {
            IMDResponse <DataTable> response = new IMDResponse <DataTable>();

            string metodo = nameof(this.DSaveUsuario);

            logger.Info(IMDSerialize.Serialize(67823458342801, $"Inicia {metodo}(EntUsuario entUsuario)", entUsuario));

            try
            {
                using (DbCommand dbCommand = database.GetStoredProcCommand(spSaveUsuario))
                {
                    database.AddInParameter(dbCommand, "piIdUsuario", DbType.Int32, entUsuario.iIdUsuario);
                    database.AddInParameter(dbCommand, "piIdTipoCuenta", DbType.Int32, entUsuario.iIdTipoCuenta);
                    database.AddInParameter(dbCommand, "piIdPerfil", DbType.Int32, entUsuario.iIdPerfil);
                    database.AddInParameter(dbCommand, "psUsuario", DbType.String, entUsuario.sUsuario);
                    database.AddInParameter(dbCommand, "psPassword", DbType.String, entUsuario.sPassword);
                    database.AddInParameter(dbCommand, "psNombres", DbType.String, entUsuario.sNombres);
                    database.AddInParameter(dbCommand, "psApellidoPaterno", DbType.String, entUsuario.sApellidoPaterno);
                    database.AddInParameter(dbCommand, "psApellidoMaterno", DbType.String, entUsuario.sApellidoMaterno);
                    database.AddInParameter(dbCommand, "pdtFechaNacimiento", DbType.DateTime, entUsuario.dtFechaNacimiento);
                    database.AddInParameter(dbCommand, "psTelefono", DbType.String, entUsuario.sTelefono);
                    database.AddInParameter(dbCommand, "psCorreo", DbType.String, entUsuario.sCorreo);
                    database.AddInParameter(dbCommand, "psDomicilio", DbType.String, entUsuario.sDomicilio);
                    database.AddInParameter(dbCommand, "pbAcceso", DbType.Boolean, entUsuario.bAcceso);
                    database.AddInParameter(dbCommand, "piIdUsuarioMod", DbType.Int32, entUsuario.iIdUsuarioMod);
                    database.AddInParameter(dbCommand, "pbActivo", DbType.Boolean, entUsuario.bActivo);
                    database.AddInParameter(dbCommand, "pbBaja", DbType.Boolean, entUsuario.bBaja);

                    response = imdCommonData.DExecuteDT(database, dbCommand);
                }
            }
            catch (Exception ex)
            {
                response.Code    = 67823458343578;
                response.Message = "Ocurrió un error inesperado en la base de datos al guardar el usuario.";

                logger.Error(IMDSerialize.Serialize(67823458343578, $"Error en {metodo}(EntUsuario entUsuario): {ex.Message}", entUsuario, ex, response));
            }
            return(response);
        }
예제 #10
0
        /// <summary>
        /// Función: Consume servicio de Conekta para consultar información de la Orden
        /// Creado: Cristopher Noh 03/07/2020
        /// Modificado:
        /// </summary>
        /// <param name="orderId">ID de la orden de Conekta</param>
        /// <param name="entUserAgent">Agente de usuario del server</param>
        /// <returns></returns>
        public IMDResponse <string> SGetOrder(string orderId, EntCreateUserAgent entUserAgent)
        {
            IMDResponse <string> response = new IMDResponse <string>();

            string metodo = nameof(this.SGetOrder);

            logger.Info(IMDSerialize.Serialize(67823458105039, $"Inicia {metodo}(string orderId, EntCreateUserAgent entUserAgent)", orderId, entUserAgent));

            try
            {
                HttpWebRequest peticion = (HttpWebRequest)WebRequest.Create($"{urlServicioConektaCrearOrden}/{orderId}");
                peticion.Accept    = $"application/vnd.conekta-v{conketaVersion}+json";
                peticion.UserAgent = $"Conekta/v1 DotNetBindings10/Conekta::{conketaVersion}";
                peticion.Method    = "GET";

                byte[] conektaApiKeyBytes       = Encoding.UTF8.GetBytes(conketaApiKey);
                string conektaApiKeyBase64      = Convert.ToBase64String(conektaApiKeyBytes);
                string agenteUsuarioSerializado = JsonConvert.SerializeObject(entUserAgent);

                peticion.Headers.Add("Authorization", $"Basic {conektaApiKeyBase64}:");
                peticion.Headers.Add("Accept-Language", conektaLocale);
                peticion.Headers.Add("X-Conekta-Client-User-Agent", agenteUsuarioSerializado);

                HttpWebResponse respuesta       = (HttpWebResponse)peticion.GetResponse();
                StreamReader    respuestaStream = new StreamReader(respuesta.GetResponseStream());
                string          body            = respuestaStream.ReadToEnd();

                response.Code    = 0;
                response.Message = "Respuesta de servicio obtenida";
                response.Result  = body;
            }

            catch (Exception ex)
            {
                response.Code    = 67823458105816;
                response.Message = "Error al consultar la orden";

                logger.Error(IMDSerialize.Serialize(67823458105816, $"Error en {metodo}(string orderId, EntCreateUserAgent entUserAgent): {ex.Message}", orderId, entUserAgent, ex, response));
            }
            return(response);
        }
예제 #11
0
        /// <summary>
        /// Valida los datos para guardar un submodulo del sistema
        /// </summary>
        /// <param name="entSubModulo"></param>
        /// <returns></returns>
        public IMDResponse <bool> BValidaDatos(EntSubModulo entSubModulo)
        {
            IMDResponse <bool> response = new IMDResponse <bool>();

            string metodo = nameof(this.BValidaDatos);

            logger.Info(IMDSerialize.Serialize(67823458189732, $"Inicia {metodo}(EntSubModulo entCreateModulo)", entSubModulo));
            try
            {
                if (entSubModulo.iIdModulo == 0)
                {
                    response.Code    = -768276382360982;
                    response.Message = "No se ha especificado el módulo conetenedor.";
                    response.Result  = false;
                    return(response);
                }

                if (entSubModulo.bActivo && !entSubModulo.bBaja)
                {
                    if (string.IsNullOrWhiteSpace(entSubModulo.sNombre))
                    {
                        response.Code    = -227619869874;
                        response.Message = "El nombre del submódulo no puede ser vacío.";
                        response.Result  = false;

                        return(response);
                    }
                }

                response.Code   = 0;
                response.Result = true;
            }
            catch (Exception ex)
            {
                response.Code    = 67823458190509;
                response.Message = "Ocurrió un error al intentar guardar el submódulo.";

                logger.Error(IMDSerialize.Serialize(67823458190509, $"Error en {metodo}(EntSubModulo entSubModulo): {ex.Message}", entSubModulo, ex, response));
            }
            return(response);
        }
예제 #12
0
        public IMDResponse <List <EntCupon> > CObtenerCupones([FromUri] int?piIdCupon = null, [FromUri] int?piIdCuponCategoria = null, [FromUri] string psDescripcion = null, [FromUri] string psCodigo = null, [FromUri] DateTime?pdtFechaVencimientoInicio = null, [FromUri] DateTime?pdtFechaVencimientoFin = null, [FromUri] DateTime?pdtFechaCreacionInicio = null, [FromUri] DateTime?pdtFechaCreacionFin = null, [FromUri] bool?pbActivo = true, [FromUri] bool?pbBaja = false, [FromUri] bool?pbVigente = null)
        {
            IMDResponse <List <EntCupon> > response = new IMDResponse <List <EntCupon> >();

            string metodo = nameof(this.CObtenerCupones);

            logger.Info(IMDSerialize.Serialize(67823458206826, $"Inicia {metodo}([FromUri]int? piIdCupon = null, [FromUri]int? piIdCuponCategoria = null, [FromUri]string psDescripcion = null, [FromUri]string psCodigo = null, [FromUri]DateTime? pdtFechaVencimientoInicio = null, [FromUri]DateTime? pdtFechaVencimientoFin = null, [FromUri]DateTime? pdtFechaCreacionInicio = null, [FromUri]DateTime? pdtFechaCreacionFin = null, [FromUri]bool pbActivo = true, [FromUri]bool pbBaja = false)", piIdCupon, piIdCuponCategoria, psDescripcion, psCodigo, pdtFechaVencimientoInicio, pdtFechaVencimientoFin, pdtFechaCreacionInicio, pdtFechaCreacionFin, pbActivo, pbBaja));

            try
            {
                response = busPromociones.BObtenerCupones(piIdCupon, piIdCuponCategoria, psDescripcion, psCodigo, pdtFechaVencimientoInicio, pdtFechaVencimientoFin, pdtFechaCreacionInicio, pdtFechaCreacionFin, pbActivo, pbBaja, pbVigente);
            }
            catch (Exception ex)
            {
                response.Code    = 67823458207603;
                response.Message = "Ocurrió un error al intentar consultar los cupones.";

                logger.Error(IMDSerialize.Serialize(67823458207603, $"Error en {metodo}([FromUri]int? piIdCupon = null, [FromUri]int? piIdCuponCategoria = null, [FromUri]string psDescripcion = null, [FromUri]string psCodigo = null, [FromUri]DateTime? pdtFechaVencimientoInicio = null, [FromUri]DateTime? pdtFechaVencimientoFin = null, [FromUri]DateTime? pdtFechaCreacionInicio = null, [FromUri]DateTime? pdtFechaCreacionFin = null, [FromUri]bool pbActivo = true, [FromUri]bool pbBaja = false): {ex.Message}", piIdCupon, piIdCuponCategoria, psDescripcion, psCodigo, pdtFechaVencimientoInicio, pdtFechaVencimientoFin, pdtFechaCreacionInicio, pdtFechaCreacionFin, pbActivo, pbBaja, ex, response));
            }
            return(response);
        }
예제 #13
0
        public IMDResponse<List<EntFolioReporte>> CGetFolios([FromUri]int? piIdFolio = null, [FromUri]int? piIdEmpresa = null, [FromUri]int? piIdProducto = null, [FromUri]int? piIdOrigen = null, [FromUri]string psFolio = null, [FromUri]string psOrdenConekta = null, [FromUri]bool? pbTerminosYCondiciones = null, [FromUri]bool? pbActivo = true, [FromUri]bool? pbBaja = false, [FromUri]bool? pbVigente = null)
        {
            IMDResponse<List<EntFolioReporte>> response = new IMDResponse<List<EntFolioReporte>>();

            string metodo = nameof(this.CGetFolios);
            logger.Info(IMDSerialize.Serialize(67823458436041, $"Inicia {metodo}([FromUri]int? piIdFolio = null, [FromUri]int? piIdEmpresa = null, [FromUri]int? piIdProducto = null, [FromUri]int? piIdOrigen = null, [FromUri]string psFolio = null, [FromUri]string psOrdenConekta = null, [FromUri]bool? pbTerminosYCondiciones = null, [FromUri]bool? pbActivo = true, [FromUri]bool? pbBaja = false)", piIdFolio, piIdEmpresa, piIdProducto, piIdOrigen, psFolio, psOrdenConekta, pbTerminosYCondiciones, pbActivo, pbBaja));

            try
            {
                BusFolio busFolio = new BusFolio();
                response = busFolio.BGetFolios(piIdFolio, piIdEmpresa, piIdProducto, piIdOrigen, psFolio, psOrdenConekta, pbTerminosYCondiciones, pbActivo, pbBaja, pbVigente);
            }
            catch (Exception ex)
            {
                response.Code = 67823458436818;
                response.Message = "Ocurrió un error inesperado en el servicio al consultar los folios del sistema.";

                logger.Error(IMDSerialize.Serialize(67823458436818, $"Error en {metodo}([FromUri]int? piIdFolio = null, [FromUri]int? piIdEmpresa = null, [FromUri]int? piIdProducto = null, [FromUri]int? piIdOrigen = null, [FromUri]string psFolio = null, [FromUri]string psOrdenConekta = null, [FromUri]bool? pbTerminosYCondiciones = null, [FromUri]bool? pbActivo = true, [FromUri]bool? pbBaja = false): {ex.Message}", piIdFolio, piIdEmpresa, piIdProducto, piIdOrigen, psFolio, psOrdenConekta, pbTerminosYCondiciones, pbActivo, pbBaja, ex, response));
            }
            return response;
        }
예제 #14
0
        public IMDResponse<bool> CUpdFechaVencimiento([FromBody]EntFolioFV entFolioFV)
        {
            IMDResponse<bool> response = new IMDResponse<bool>();

            string metodo = nameof(this.CUpdFechaVencimiento);
            logger.Info(IMDSerialize.Serialize(67823458440703, $"Inicia {metodo}([FromBody]EntFolioFV entFolioFV)", entFolioFV));

            try
            {
                BusFolio busFolio = new BusFolio();
                response = busFolio.BUpdFechaVencimiento(entFolioFV);
            }
            catch (Exception ex)
            {
                response.Code = 67823458441480;
                response.Message = "Ocurrió un error inesperado en el servicio al actualizar el vencimiento de los folios.";

                logger.Error(IMDSerialize.Serialize(67823458441480, $"Error en {metodo}([FromBody]EntFolioFV entFolioFV): {ex.Message}", entFolioFV, ex, response));
            }
            return response;
        }
예제 #15
0
        public IMDResponse <bool> CDesactivarCupon([FromUri] int piIdCupon, [FromUri] int?piIdUsuario = null)
        {
            IMDResponse <bool> response = new IMDResponse <bool>();

            string metodo = nameof(this.CDesactivarCupon);

            logger.Info(IMDSerialize.Serialize(67823458205272, $"Inicia {metodo}([FromUri]int piIdCupon, [FromUri]int? piIdUsuario = null)", piIdCupon, piIdUsuario));

            try
            {
                response = busPromociones.BDeshabilitarCupon(piIdCupon, piIdUsuario);
            }
            catch (Exception ex)
            {
                response.Code    = 67823458206049;
                response.Message = "Ocurrió un error al intentar desactivar el cupón.";

                logger.Error(IMDSerialize.Serialize(67823458206049, $"Error en {metodo}([FromUri]int piIdCupon, [FromUri]int? piIdUsuario = null): {ex.Message}", piIdCupon, piIdUsuario, ex, response));
            }
            return(response);
        }
예제 #16
0
        public IMDResponse<EntFolioVerificarCarga> CVerificarFoliosArchivo([FromUri]int piIdEmpresa, [FromUri]int piIdProducto)
        {
            IMDResponse<EntFolioVerificarCarga> response = new IMDResponse<EntFolioVerificarCarga>();

            string metodo = nameof(this.CVerificarFoliosArchivo);
            logger.Info(IMDSerialize.Serialize(67823458616305, $"Inicia {metodo}([FromUri]int piIdEmpresa, [FromUri]int piIdProducto)", piIdEmpresa, piIdProducto));

            try
            {
                BusFolio busFolio = new BusFolio();
                response = busFolio.BVerificarFoliosArchivo(piIdEmpresa, piIdProducto, HttpContext.Current.Request.InputStream);
            }
            catch (Exception ex)
            {
                response.Code = 67823458617082;
                response.Message = "Ocurrió un error inesperado en el servicio al verificar los folios del archivo.";

                logger.Error(IMDSerialize.Serialize(67823458617082, $"Error en {metodo}([FromUri]int piIdEmpresa, [FromUri]int piIdProducto): {ex.Message}", piIdEmpresa, piIdProducto, ex, response));
            }
            return response;
        }
예제 #17
0
        public IMDResponse <bool> CActivarCupon([FromBody] EntCreateCupon entCreateCupon, [FromUri] int?piIdUsuario = null)
        {
            IMDResponse <bool> response = new IMDResponse <bool>();

            string metodo = nameof(this.CActivarCupon);

            logger.Info(IMDSerialize.Serialize(67823458200610, $"Inicia {metodo}([FromBody]EntCreateCupon entCreateCupon, [FromUri]int? piIdUsuario = null)", entCreateCupon, piIdUsuario));

            try
            {
                response = busPromociones.BActivarCupon(entCreateCupon, piIdUsuario);
            }
            catch (Exception ex)
            {
                response.Code    = 67823458201387;
                response.Message = "Ocurrió un error al intentar activar el cupón.";

                logger.Error(IMDSerialize.Serialize(67823458201387, $"Error en {metodo}([FromBody]EntCreateCupon entCreateCupon, [FromUri]int? piIdUsuario = null): {ex.Message}", entCreateCupon, piIdUsuario, ex, response));
            }
            return(response);
        }
예제 #18
0
        public IMDResponse<bool> CGenerarFoliosArchivo([FromUri]int piIdEmpresa, [FromUri]int piIdProducto, [FromUri]int piIdUsuarioMod)
        {
            IMDResponse<bool> response = new IMDResponse<bool>();

            string metodo = nameof(this.CGenerarFoliosArchivo);
            logger.Info(IMDSerialize.Serialize(67823458619413, $"Inicia {metodo}([FromUri]int piIdEmpresa, [FromUri]int piIdProducto, [FromUri]int piIdUsuarioMod)", piIdEmpresa, piIdProducto, piIdUsuarioMod));

            try
            {
                BusFolio busFolio = new BusFolio();
                response = busFolio.BGenerarFoliosArchivo(piIdEmpresa, piIdProducto, HttpContext.Current.Request.InputStream, piIdUsuarioMod);
            }
            catch (Exception ex)
            {
                response.Code = 67823458620190;
                response.Message = "Ocurrió un error inesperado en el servicio al generar los folios solicitados.";

                logger.Error(IMDSerialize.Serialize(67823458620190, $"Error en {metodo}([FromUri]int piIdEmpresa, [FromUri]int piIdProducto, [FromUri]int piIdUsuarioMod): {ex.Message}", piIdEmpresa, piIdProducto, piIdUsuarioMod, ex, response));
            }
            return response;
        }
예제 #19
0
        public IMDResponse <List <string> > CGetCuponAutocomplete()
        {
            IMDResponse <List <string> > response = new IMDResponse <List <string> >();

            string metodo = nameof(this.CGetCuponAutocomplete);

            logger.Info(IMDSerialize.Serialize(67823458237906, $"Inicia {metodo}()"));

            try
            {
                response = busPromociones.BGetCuponAutocomplete();
            }
            catch (Exception ex)
            {
                response.Code    = 67823458238683;
                response.Message = "Ocurrió un error inesperado al consultar los códigos de descuento.";

                logger.Error(IMDSerialize.Serialize(67823458238683, $"Error en {metodo}(): {ex.Message}", ex, response));
            }
            return(response);
        }
예제 #20
0
        public IMDResponse <bool> CGetCuponUsed([FromUri] int piIdCupon, [FromUri] string psEmail)
        {
            IMDResponse <bool> response = new IMDResponse <bool>();

            string metodo = nameof(this.CGetCuponUsed);

            logger.Info(IMDSerialize.Serialize(67823458216150, $"Inicia {metodo}([FromUri]int piIdCupon, [FromUri]string psEmail)", piIdCupon, psEmail));

            try
            {
                response = busPromociones.BGetCuponUsed(piIdCupon, psEmail);
            }
            catch (Exception ex)
            {
                response.Code    = 67823458216927;
                response.Message = "Ocurrió un error inesperado en el servicio a validar el código de descuento.";

                logger.Error(IMDSerialize.Serialize(67823458216927, $"Error en {metodo}([FromUri]int piIdCupon, [FromUri]string psEmail): {ex.Message}", piIdCupon, psEmail, ex, response));
            }
            return(response);
        }
예제 #21
0
        public IMDResponse<bool> CReenviarCorreo([FromUri]string psOrderId)
        {
            IMDResponse<bool> response = new IMDResponse<bool>();

            string metodo = nameof(this.CReenviarCorreo);
            logger.Info(IMDSerialize.Serialize(67823458630291, $"Inicia {metodo}([FromUri]string psOrderId)", psOrderId));

            try
            {
                BusCorreo busCorreo = new BusCorreo();
                response = busCorreo.BReenviarCorreo(psOrderId);
            }
            catch (Exception ex)
            {
                response.Code = 67823458631068;
                response.Message = "Ocurrió un error inesperado en el servicio al reenviar el correo.";

                logger.Error(IMDSerialize.Serialize(67823458631068, $"Error en {metodo}([FromUri]string psOrderId): {ex.Message}", psOrderId, ex, response));
            }
            return response;
        }
예제 #22
0
        public IMDResponse<bool> CNuevoFolioEmpresaExterna([FromBody]EntEmpresaExterna entEmpresa)
        {
            IMDResponse<bool> response = new IMDResponse<bool>();

            string metodo = nameof(this.CNuevoFolioEmpresaExterna);
            logger.Info(IMDSerialize.Serialize(67823458656709, $"Inicia {metodo}([FromBody]EntEmpresaExterna entEmpresa)", entEmpresa));

            try
            {
                BusFolio busFolio = new BusFolio();
                response = busFolio.BNuevoFolioEmpresaExterna(entEmpresa);
            }
            catch (Exception ex)
            {
                response.Code = 67823458657486;
                response.Message = "Ocurrió un error inesperado en el servicio al procesar la compra.";

                logger.Error(IMDSerialize.Serialize(67823458657486, $"Error en {metodo}([FromBody]EntEmpresaExterna entEmpresa): {ex.Message}", entEmpresa, ex, response));
            }
            return response;
        }
예제 #23
0
        public IMDResponse<EntFolioSMS> CNuevoFolioLocutorios([FromBody]EntFolioLocutorios entFolio)
        {
            IMDResponse<EntFolioSMS> response = new IMDResponse<EntFolioSMS>();

            string metodo = nameof(this.CNuevoFolioLocutorios);
            logger.Info(IMDSerialize.Serialize(67823458662925, $"Inicia {metodo}([FromBody]EntFolioLocutorios entFolio)", entFolio));

            try
            {
                BusFolio busFolio = new BusFolio();
                response = busFolio.BNuevoFolioLocutorios(entFolio);
            }
            catch (Exception ex)
            {
                response.Code = 67823458663702;
                response.Message = "Ocurrió un error inesperado en el servicio al procesar la compra.";

                logger.Error(IMDSerialize.Serialize(67823458663702, $"Error en {metodo}([FromBody]EntFolioLocutorios entFolio): {ex.Message}", entFolio, ex, response));
            }
            return response;
        }
예제 #24
0
        public IMDResponse <EntCupon> CValidarCupon([FromUri] string psCodigo = null, [FromUri] int?piIdCupon = null)
        {
            IMDResponse <EntCupon> response = new IMDResponse <EntCupon>();

            string metodo = nameof(this.CValidarCupon);

            logger.Info(IMDSerialize.Serialize(67823458203718, $"Inicia {metodo}([FromUri]string psCodigo = null, [FromUri]int? piIdCupon = null)", psCodigo, piIdCupon));

            try
            {
                response = busPromociones.BValidarCupon(psCodigo, piIdCupon);
            }
            catch (Exception ex)
            {
                response.Code    = 67823458204495;
                response.Message = "Ocurrió un error al intentar validar el cupón.";

                logger.Error(IMDSerialize.Serialize(67823458204495, $"Error en {metodo}([FromUri]string psCodigo = null, [FromUri]int? piIdCupon = null): {ex.Message}", psCodigo, piIdCupon, ex, response));
            }
            return(response);
        }
예제 #25
0
        public IMDResponse <bool> CWebHookMain([FromBody] EntWebHook entWebHook)
        {
            IMDResponse <bool> response = new IMDResponse <bool>();

            string metodo = nameof(this.CWebHookMain);

            logger.Info(IMDSerialize.Serialize(67823458155544, $"Inicia {metodo}([FromBody]EntWebHook entWebHook)", entWebHook));

            try
            {
                response = busWebHook.BUpdateState(entWebHook);
            }
            catch (Exception ex)
            {
                response.Code    = 67823458156321;
                response.Message = "Ocurrió un error al procesar la información de la orden.";

                logger.Error(IMDSerialize.Serialize(67823458156321, $"Error en {metodo}([FromBody]EntWebHook entWebHook): {ex.Message}", entWebHook, ex, response));
            }
            return(response);
        }
예제 #26
0
        public IMDResponse <EntOrder> CGetOrder([FromUri] string orderId)
        {
            IMDResponse <EntOrder> response = new IMDResponse <EntOrder>();

            string metodo = nameof(this.CGetOrder);

            logger.Info(IMDSerialize.Serialize(67823458122910, $"Inicia {metodo}([FromUri]string orderId)", orderId));

            try
            {
                response = busOrder.BGetOrder(orderId);
            }
            catch (Exception ex)
            {
                response.Code    = 67823458123687;
                response.Message = "Ocurrió un error inesperado al consultar la orden.";

                logger.Error(IMDSerialize.Serialize(67823458123687, $"Error en {metodo}([FromUri]string orderId): {ex.Message}", orderId, ex, response));
            }
            return(response);
        }
예제 #27
0
        public IMDResponse <EntOrder> CCreateOrder([FromBody] EntCreateOrder entCreateOrder)
        {
            IMDResponse <EntOrder> response = new IMDResponse <EntOrder>();

            string metodo = nameof(this.CCreateOrder);

            logger.Info(IMDSerialize.Serialize(67823458121356, $"Inicia {metodo}([FromBody]EntCreateOrder entCreateOrder)", entCreateOrder));

            try
            {
                response = busOrder.BCreateOrder(entCreateOrder);
            }
            catch (Exception ex)
            {
                response.Code    = 67823458122133;
                response.Message = "No pudimos procesar el pago de tu pedido, revisa nuevamente los datos ingresados o intenta con otra tarjeta.";

                logger.Error(IMDSerialize.Serialize(67823458122133, $"Error en {metodo}([FromBody]EntCreateOrder entCreateOrder): {ex.Message}", entCreateOrder, ex, response));
            }
            return(response);
        }
예제 #28
0
        public IMDResponse <bool> DSaveProducto(EntProducto entProducto)
        {
            IMDResponse <bool> response = new IMDResponse <bool>();

            string metodo = nameof(this.DSaveProducto);

            logger.Info(IMDSerialize.Serialize(67823458405738, $"Inicia {metodo}(EntProducto entProducto)", entProducto));


            try
            {
                using (DbCommand dbCommand = database.GetStoredProcCommand(spSaveProducto))
                {
                    database.AddInParameter(dbCommand, "piIdProducto", DbType.Int32, entProducto.iIdProducto);
                    database.AddInParameter(dbCommand, "piIdTipoProducto", DbType.Int32, entProducto.iIdTipoProducto);
                    database.AddInParameter(dbCommand, "piIdGrupoProducto", DbType.Int32, entProducto.iIdGrupoProducto);
                    database.AddInParameter(dbCommand, "psNombre", DbType.String, entProducto.sNombre);
                    database.AddInParameter(dbCommand, "psNombreCorto", DbType.String, entProducto.sNombreCorto);
                    database.AddInParameter(dbCommand, "psDescripcion", DbType.String, entProducto.sDescripcion);
                    database.AddInParameter(dbCommand, "pfCosto", DbType.Double, entProducto.fCosto);
                    database.AddInParameter(dbCommand, "piMesVigencia", DbType.Int32, entProducto.iMesVigencia);
                    database.AddInParameter(dbCommand, "psIcon", DbType.String, entProducto.sIcon);
                    database.AddInParameter(dbCommand, "pbComercial", DbType.Boolean, entProducto.bComercial);
                    database.AddInParameter(dbCommand, "psPrefijoFolio", DbType.String, entProducto.sPrefijoFolio);
                    database.AddInParameter(dbCommand, "piIdUsuarioMod", DbType.Int32, entProducto.iIdUsuarioMod);
                    database.AddInParameter(dbCommand, "pbActivo", DbType.Boolean, entProducto.bActivo);
                    database.AddInParameter(dbCommand, "pbBaja", DbType.Boolean, entProducto.bBaja);

                    response = imdCommonData.DExecute(database, dbCommand);
                }
            }
            catch (Exception ex)
            {
                response.Code    = 67823458406515;
                response.Message = "Ocurrió un error inesperado en la base de datos al guardar el producto.";

                logger.Error(IMDSerialize.Serialize(67823458406515, $"Error en {metodo}(EntProducto entProducto): {ex.Message}", entProducto, ex, response));
            }
            return(response);
        }
예제 #29
0
        /// <summary>
        /// Validar los datos para actualizar los permisos
        /// </summary>
        /// <param name="entPermiso"></param>
        /// <returns></returns>
        public IMDResponse <bool> BValidaDatos(EntPermiso entPermiso)
        {
            IMDResponse <bool> response = new IMDResponse <bool>();

            string metodo = nameof(this.BValidaDatos);

            logger.Info(IMDSerialize.Serialize(67823458349017, $"Inicia {metodo}(EntPermiso entPermiso)", entPermiso));

            try
            {
                if (entPermiso.iIdPerfil == 0)
                {
                    response.Code    = -987876827364;
                    response.Message = "La información para guardar el permiso está incompleta. No se especificó el perfil.";
                    response.Result  = false;

                    return(response);
                }

                if (entPermiso.iIdModulo == 0)
                {
                    response.Code    = -767819247987123;
                    response.Message = "La información para guardar el permiso está incompleta.";
                    response.Result  = false;

                    return(response);
                }

                response.Code   = 0;
                response.Result = true;
            }
            catch (Exception ex)
            {
                response.Code    = 67823458349794;
                response.Message = "Ocurrió un error inesperado al validar los permisos solicitados.";

                logger.Error(IMDSerialize.Serialize(67823458349794, $"Error en {metodo}(EntPermiso entPermiso): {ex.Message}", entPermiso, ex, response));
            }
            return(response);
        }
예제 #30
0
        public IMDResponse <bool> BSaveProducto(EntProducto entProducto)
        {
            IMDResponse <bool> response = new IMDResponse <bool>();

            string metodo = nameof(this.BSaveProducto);

            logger.Info(IMDSerialize.Serialize(67823458394860, $"Inicia {metodo}(EntProducto entProducto)", entProducto));

            try
            {
                if (entProducto.bActivo && !entProducto.bBaja)
                {
                    response = BValidaDatos(entProducto);

                    if (response.Code != 0)
                    {
                        return(response);
                    }
                }

                response = datProducto.DSaveProducto(entProducto);

                if (response.Code != 0)
                {
                    response.Result = false;
                    return(response);
                }

                response.Message = entProducto.iIdProducto == 0 ? "El producto ha sido guardado correctamente." : !entProducto.bActivo ? "El producto ha sido eliminado correctamente." : "El producto ha sido actualizado correctamente.";
                response.Result  = true;
            }
            catch (Exception ex)
            {
                response.Code    = 67823458395637;
                response.Message = "Ocurrió un error inesperado al guardar el producto.";

                logger.Error(IMDSerialize.Serialize(67823458395637, $"Error en {metodo}(EntProducto entProducto): {ex.Message}", entProducto, ex, response));
            }
            return(response);
        }