public async Task <IActionResult> RegistrarAsync([FromBody] UsuarioZiPago entidad)
        {
            var logger = LogManager.GetCurrentClassLogger();

            logger.Info("[{0}] | UsuarioZiPago: [{1}] | Inicio.", nameof(RegistrarAsync), entidad.Clave1);

            var response = await oIUsuarioZiPagoService.RegistrarUsuarioZiPagoAsync(logger, entidad);

            return(response.ToHttpResponse());
        }
        public async Task <ISingleResponse <UsuarioZiPago> > RegistrarUsuarioZiPagoAsync(Logger logger, UsuarioZiPago entidad)
        {
            var response = new SingleResponse <UsuarioZiPago>();

            logger.Info("[{0}] | UsuarioZiPago: [{1}] | Inicio.", nameof(RegistrarUsuarioZiPagoAsync), entidad.Clave1);

            using (var txAsync = await DbContext.Database.BeginTransactionAsync())
            {
                try
                {
                    response.Model = await DbContext.ObtenerUsuarioZiPagoAsync(entidad.Clave1);

                    if (response.Model is null || response.Model.IdUsuarioZiPago == 0)
                    {
                        entidad.Activo        = Constantes.strValor_Activo;
                        entidad.FechaCreacion = DateTime.Now;
                        DbContext.Add(entidad);

                        await DbContext.SaveChangesAsync();

                        txAsync.Commit();
                        response.Mensaje = Constantes.strMensajeUsuarioRegistrado;
                        logger.Info("[{0}] | UsuarioZiPago: [{1}] | Transaccion realizada.", nameof(RegistrarUsuarioZiPagoAsync), entidad.Clave1);

                        response.Model = await DbContext.ObtenerUsuarioZiPagoAsync(entidad.Clave1);

                        response.Model.Clave2 = "";
                        logger.Info("[{0}] | UsuarioZiPago: [{1}] | Obtener usuario registrado.", nameof(RegistrarUsuarioZiPagoAsync), entidad.Clave1);
                    }
                    else
                    {
                        response.HizoError    = true;
                        response.Model.Clave2 = "";
                        response.MensajeError = string.Format(Constantes.strMensajeUsuarioYaExiste, response.Model.Clave1.Trim());
                        logger.Info("[{0}] | UsuarioZiPago: [{1}] | Id ZiPago ya se encuentra registrado.", nameof(RegistrarUsuarioZiPagoAsync), entidad.Clave1);
                    }
                }
        public async Task <ISingleResponse <UsuarioZiPago> > AutenticarUsuarioZiPagoAsync(Logger logger, UsuarioZiPago entidad)
        {
            var response = new SingleResponse <UsuarioZiPago>();

            logger.Info("[{0}] | UsuarioZiPago: [{1}] | Inicio.", nameof(AutenticarUsuarioZiPagoAsync), entidad.Clave1);
            try
            {
                response.Model = await DbContext.ObtenerUsuarioZiPagoAsync(entidad.Clave1);

                if (response.Model != null && (Criptografia.Desencriptar(response.Model.Clave2.Trim()) == Criptografia.Desencriptar(entidad.Clave2)))
                {
                    response.Model.Clave2 = "";
                    response.Mensaje      = "1";
                }
                else
                {
                    response.Model   = null;
                    response.Mensaje = Constantes.strMensajeUsuarioIncorrecto;
                }
                logger.Info("[{0}] | UsuarioZiPago: [{1}] | Mensaje: [{2}].", nameof(AutenticarUsuarioZiPagoAsync), entidad.Clave1, response.Mensaje);
            }
            catch (Exception ex)
            {
                response.Model = null;
                response.SetError(logger, nameof(AutenticarUsuarioZiPagoAsync), nameof(UsuarioZiPago), ex);
            }
            return(response);
        }
        public async Task <JsonResult> Registrar(RegistroViewModel model)
        {
            JsonResult           response;
            Uri                  requestUrl;
            ComercioCuentaZiPago comercioCuenta;

            try
            {
                AfiliacionZiPagoRequest request   = new AfiliacionZiPagoRequest();
                UsuarioZiPago           usuario   = new UsuarioZiPago();
                DomicilioZiPago         domicilio = new DomicilioZiPago();

                usuario.IdUsuarioZiPago    = model.IdUsuarioZiPago;
                usuario.Clave1             = model.Clave1;
                usuario.ApellidosUsuario   = model.ApellidosUsuario;
                usuario.NombresUsuario     = model.NombresUsuario;
                usuario.CodigoRubroNegocio = model.CodigoRubroNegocio;
                usuario.CodigoTipoPersona  = model.CodigoTipoPersona;

                if (model.CodigoTipoPersona == Constantes.strTipoPersonaJuridica)
                {
                    usuario.CodigoTipoDocumento = Constantes.strTipoDocIdRUC;
                    usuario.NumeroDocumento     = model.NumeroRUC;
                    usuario.RazonSocial         = model.RazonSocial;
                }
                else
                {
                    usuario.CodigoTipoDocumento = Constantes.strTipoDocIdDNI;
                    usuario.NumeroDocumento     = model.NumeroDNI;
                }

                usuario.ApellidoPaterno = model.ApellidoPaterno;
                usuario.ApellidoMaterno = model.ApellidoMaterno;
                usuario.Nombres         = model.Nombres;
                usuario.Sexo            = model.Sexo;
                usuario.FechaNacimiento = model.FechaNacimiento;
                usuario.TelefonoMovil   = model.TelefonoMovil;
                usuario.TelefonoFijo    = model.TelefonoFijo;

                domicilio.IdUsuarioZiPago    = model.IdUsuarioZiPago;
                domicilio.CodigoDepartamento = model.CodigoDepartamento;
                domicilio.CodigoProvincia    = model.CodigoProvincia;
                domicilio.CodigoDistrito     = model.CodigoDistrito;
                domicilio.Via = model.Via;
                domicilio.DireccionFacturacion = model.DireccionFacturacion;
                domicilio.Referencia           = model.Referencia;

                //----------------Luego mover a Servicio (Negocio)
                domicilio.Activo        = Constantes.strValor_Activo;
                domicilio.FechaCreacion = DateTime.Now;

                request.EntidadUsuario   = usuario;
                request.OtroRubroNegocio = model.OtroRubroNegocio;
                request.EntidadDomicilio = domicilio;

                foreach (CuentaBancariaZiPago cuenta in model.CuentasBancariaZiPago)
                {
                    foreach (ComercioZiPago comercio in model.ComerciosZiPago)
                    {
                        if (comercio.CodigoCuenta == cuenta.CodigoCuenta)
                        {
                            comercioCuenta = new ComercioCuentaZiPago
                            {
                                ComercioZiPago       = comercio,
                                CuentaBancariaZiPago = cuenta
                            };
                            request.ListComercioCuenta.Add(comercioCuenta);
                        }
                    }
                }

                requestUrl = ApiClientFactory.Instance.CreateRequestUri(string.Format(CultureInfo.InvariantCulture, apiClient.Value.AfiliacionZiPago_Registrar));
                response   = Json(await ApiClientFactory.Instance.PostJsonAsync <AfiliacionZiPagoRequest>(requestUrl, request));
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(response);
        }