/// <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); }
/// <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); } }
/// <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); }