/// <summary>
        /// Autenticar
        /// </summary>
        /// <param name="url">Url del servicio Pasamonte</param>
        /// <param name="apiKey">Clave de integracion</param>
        /// <param name="identificacionUsuario">Identificacion del usuario</param>
        /// <param name="identificacionTerminal">Identificacion del terminal</param>
        /// <param name="identificacionSistemaRemoto">Identificacion del sistema remoto (RCE)</param>
        /// <returns></returns>
        public async Task <RespuestaValidarIdentificacion> RceAutenticar
        (
            string url,
            string apiKey,
            IdentificacionUsuario identificacionUsuario,
            IdentificacionTerminal identificacionTerminal,
            IdentificacionSistemaRemoto identificacionSistemaRemoto
        )
        {
            if (!ValidarUrl(url))
            {
                return(RespuestaErrorUrl <RespuestaValidarIdentificacion>("RceAutenticar"));
            }
            if (!ValidarApiKey(apiKey))
            {
                return(RespuestaErrorApiKey <RespuestaValidarIdentificacion>("RceAutenticar"));
            }
            var respuesta = new RespuestaValidarIdentificacion()
            {
            };

            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri(url);
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                // HTTP POST
                var requestData =
                    new
                {
                    identificacionUsuario       = identificacionUsuario,
                    identificacionTerminal      = identificacionTerminal,
                    identificacionSistemaRemoto = identificacionSistemaRemoto
                };
                var response =
                    await client.PostAsJsonAsync
                    (
                        RceAccionAutenticar,
                        requestData
                    );

                if (response.IsSuccessStatusCode)
                {
                    // Get the URI of the created resource.
                    respuesta = await response.Content.ReadAsAsync <RespuestaValidarIdentificacion>();

                    log.DebugFormat("-> RceAutenticar: ok. Terminal: {0}. Usuario: {1}", identificacionTerminal.CodigoEstablecimiento, identificacionUsuario.Identificador);
                }
                else
                {
                    respuesta.Status = StatusLlamada.ErrorDesconocido;
                    log.DebugFormat("-> RceAutenticar: ERROR. Terminal: {0}. Usuario: {1}", identificacionTerminal.CodigoEstablecimiento, identificacionUsuario.Identificador);
                }
            }
            return(respuesta);
        }
Example #2
0
        /// <summary>
        /// RceCambiarClave
        /// </summary>
        /// <param name="url">Url del servicio Pasamonte</param>
        /// <param name="apiKey">Clave de integracion</param>
        /// <param name="identificacionUsuario"></param>
        /// <param name="identificacionTerminal"></param>
        /// <param name="identificacionSistemaRemoto"></param>
        /// <param name="nuevaClave"></param>
        /// <returns>Objeto con la respuesta</returns>
        public async Task <RespuestaCambiarClave> RceCambiarClave
        (
            string url,
            string apiKey,
            IdentificacionUsuario identificacionUsuario,
            IdentificacionTerminal identificacionTerminal,
            IdentificacionSistemaRemoto identificacionSistemaRemoto,
            string nuevaClave
        )
        {
            if (!ValidarUrl(url))
            {
                return(RespuestaErrorUrl <RespuestaCambiarClave>("RceCambiarClave"));
            }
            if (!ValidarApiKey(apiKey))
            {
                return(RespuestaErrorApiKey <RespuestaCambiarClave>("RceCambiarClave"));
            }
            var respuesta = new RespuestaCambiarClave()
            {
            };

            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri(url);
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                // HTTP POST
                var requestData =
                    new
                {
                    identificacionUsuario       = identificacionUsuario,
                    identificacionTerminal      = identificacionTerminal,
                    identificacionSistemaRemoto = identificacionSistemaRemoto,
                    nuevaClave = nuevaClave
                };
                var response =
                    await client.PostAsJsonAsync
                    (
                        RceAccionCambiarClave,
                        requestData
                    );

                if (response.IsSuccessStatusCode)
                {
                    respuesta = await response.Content.ReadAsAsync <RespuestaCambiarClave>();
                }
                else
                {
                    respuesta.Status = StatusLlamada.ErrorDesconocido;
                }
            }
            return(respuesta);
        }
        /// <summary>
        /// NotificarEntrega
        /// </summary>
        /// <param name="url">Url del servicio Pasamonte</param>
        /// <param name="apiKey">Clave de integracion</param>
        /// <param name="identificacionUsuario"></param>
        /// <param name="identificacionTerminal"></param>
        /// <param name="identificacionSistemaRemoto"></param>
        /// <param name="entrega">Entrega a notificar</param>
        /// <returns>Objeto con la respuesta. <see cref="RespuestaNotificarEntrega"/></returns>
        public async Task <RespuestaNotificarEntrega> RceNotificarEntrega
        (
            string url,
            string apiKey,
            IdentificacionUsuario identificacionUsuario,
            IdentificacionTerminal identificacionTerminal,
            IdentificacionSistemaRemoto identificacionSistemaRemoto,
            Entrega entrega
        )
        {
            if (!ValidarUrl(url))
            {
                return(RespuestaErrorUrl <RespuestaNotificarEntrega>("RceNotificarEntrega"));
            }
            if (!ValidarApiKey(apiKey))
            {
                return(RespuestaErrorApiKey <RespuestaNotificarEntrega>("RceNotificarEntrega"));
            }
            if (entrega == null)
            {
                return new RespuestaNotificarEntrega()
                       {
                           Status      = StatusLlamada.ErrorDesconocido,
                           Descripcion = "RceNotificarEntrega - Error parametro entrega nulo"
                       }
            }
            ;
            var respuesta = new RespuestaNotificarEntrega()
            {
            };

            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri(url);

                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                // HTTP POST
                var requestData =
                    new
                {
                    identificacionUsuario       = identificacionUsuario,
                    identificacionTerminal      = identificacionTerminal,
                    identificacionSistemaRemoto = identificacionSistemaRemoto,
                    entrega = entrega
                };
                var response =
                    await client.PostAsJsonAsync
                    (
                        RceAccionNotificarEntrega,
                        requestData
                    );

                if (response.IsSuccessStatusCode)
                {
                    respuesta = await response.Content.ReadAsAsync <RespuestaNotificarEntrega>();
                }
                else
                {
                    respuesta.Status = StatusLlamada.ErrorDesconocido;
                }
            }
            return(respuesta);
        }
    }
Example #4
0
        /// <summary>
        /// ObtenerEntregas
        /// </summary>
        /// <param name="url">Url del servicio Pasamonte</param>
        /// <param name="apiKey">Clave de integracion</param>
        /// <param name="identificacionUsuario">Identificacion del paciente</param>
        /// <param name="identificacionTerminal">Identificacion del terminal que consulta</param>
        /// <param name="identificacionSistemaRemoto">Identificacion del sistema remoto (RCE)</param>
        /// <returns>Objeto con respuesta. <see cref="RespuestaObtenerEntregas"/></returns>
        public async Task <RespuestaObtenerEntregas> RceObtenerEntregas
        (
            string url,
            string apiKey,
            IdentificacionUsuario identificacionUsuario,
            IdentificacionTerminal identificacionTerminal,
            IdentificacionSistemaRemoto identificacionSistemaRemoto
        )
        {
            if (!ValidarUrl(url))
            {
                return(RespuestaErrorUrl <RespuestaObtenerEntregas>("RceObtenerEntregas"));
            }
            if (!ValidarApiKey(apiKey))
            {
                return(RespuestaErrorApiKey <RespuestaObtenerEntregas>("RceObtenerEntregas"));
            }
            var respuesta = new RespuestaObtenerEntregas()
            {
            };

            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri(url);
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                // HTTP POST
                var requestData =
                    new
                {
                    identificacionUsuario       = identificacionUsuario,
                    identificacionTerminal      = identificacionTerminal,
                    identificacionSistemaRemoto = identificacionSistemaRemoto
                };
                var response =
                    await client.PostAsJsonAsync
                    (
                        RceAccionObtenerEntregas,
                        requestData
                    );

                if (response.IsSuccessStatusCode)
                {
                    // Get the URI of the created resource.
                    var r = await response.Content.ReadAsStringAsync();

                    respuesta =
                        await response.Content.ReadAsAsync <RespuestaObtenerEntregas>();

                    var b = new StringBuilder();
                    if (respuesta.Entregas != null)
                    {
                        foreach (var entrega in respuesta.Entregas)
                        {
                            b.AppendFormat("-- entrega id: {0} tipo: {1}\r\n", entrega.IdEnSistemaExterno, entrega.TipoEntrega);
                            if (entrega.ItemsEntrega != null)
                            {
                                foreach (var item in entrega.ItemsEntrega)
                                {
                                    b.AppendFormat("---- item id:\t{0}\tcantidad:\t{1}\tproducto:\t{2} desc:\t{3} stock rce:\t{4}\r\n", item.IdEnSistemaExterno, item.CantidadEntregar, item.IdentificadorProducto, item.DescripcionProducto, item.StockRCE);
                                }
                            }
                        }
                    }
                    log.DebugFormat("-> RceObtenerEntregas: ok. Terminal: {0}. Usuario: {1}\r\n{2}", identificacionTerminal.CodigoEstablecimiento, identificacionUsuario.Identificador, b.ToString());
                }
                else
                {
                    respuesta.Status = StatusLlamada.ErrorDesconocido;
                    log.DebugFormat("-> RceObtenerEntregas: ERROR. Terminal: {0}. Usuario: {1}", identificacionTerminal.CodigoEstablecimiento, identificacionUsuario.Identificador);
                }
            }
            return(respuesta);
        }