public IActionResult AltaPromociones(Cliente cliente) { Token responseToken; Response response = new Response(); gestionarToken token = new gestionarToken(); gestionarAltaPromociones alta = new gestionarAltaPromociones(); postCardAssignCatalog postCardAssign = new postCardAssignCatalog(); string prueba = string.Empty; int altaPendiente = 0; string ReturnCodePendientes = string.Empty; try { var builder = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json"); var configuration = builder.Build(); ReturnCodePendientes = configuration["ReturnCodePendientes"]; string[] returnCodesPendientes = ReturnCodePendientes.Split(','); prueba = configuration["prueba"]; if (prueba == "S") { return(StatusCode(200, "Alta exitosa")); } Root ro = new Root(); ro.catalog = cliente.Catalog; ro.companyId = cliente.CompanyId; List <Item> item = new List <Item>() { new Item { operation = "I", id = cliente.CardId, customer = cliente.CustomerId, amount = cliente.Amount, name = cliente.NombreCliente, surname = cliente.ApellidoCliente, idType = cliente.TipoIdentificacion, identifier = cliente.Identificacion } }; ro.items = item; List <Params> parameters = new List <Params>() { new Params { cardType = cliente.CardTye, contract = cliente.Contract } }; ro.@params = parameters; var jsonString = JsonConvert.SerializeObject(ro); Logger.LoggerMessage("Promociones API: " + jsonString); responseToken = token.obtenerToken(); if (responseToken.AccessToken != null) { response = alta.altaPromociones(ro, responseToken); if (response != null && (returnCodesPendientes.Contains(response.StatusCode.ToString()))) { altaPendiente = postCardAssign.grabarAltaPendiete(ro, jsonString); switch (altaPendiente) { case 1: response.Detail.Detail = response.Detail.Detail + " - El alta ha quedado en pendiente en Promociones"; break; case 2: response.Detail.Detail = response.Detail.Detail + " - Existe un alta pendiente para ejecutar en Promociones para el documento " + ro.items[0].identifier; break; default: break; } Logger.LoggerMessage("Promociones API: " + response.StatusCode + " - " + response.Detail.Detail); return(StatusCode(202, response.StatusCode + " - " + response.Detail.Detail)); } else { Logger.LoggerMessage("Promociones API: " + response.StatusCode + " - " + response.Detail.Detail); return(StatusCode(response.StatusCode, response.Detail.Detail)); } } else { altaPendiente = postCardAssign.grabarAltaPendiete(ro, jsonString); switch (altaPendiente) { case 1: response.Detail.Detail = response.Detail.Detail + " - El alta ha quedado en pendiente en Promociones"; break; case 2: response.Detail.Detail = response.Detail.Detail + " - Existe un alta pendiente para ejecutar en Promociones para el documento " + ro.items[0].identifier; break; default: break; } Logger.LoggerMessage("Promociones API: " + response.StatusCode + " - " + response.Detail.Detail); return(StatusCode(202, "Error al obtener Token - " + response.Detail.Detail)); } } catch (Exception ex) { Logger.LoggerMessage("Promociones API: 480 - Excepcion no controlada: " + ex.Message.ToString() + " - " + ex.InnerException.ToString()); return(StatusCode(480, "Promociones API: Excepcion no controlada: " + ex.Message.ToString() + " - " + ex.InnerException.ToString())); } }
public IActionResult EjecutarAltaPendientes() { List <Pendientes> listPendientes = new List <Pendientes>(); ejecutarAltasPendientes pendientes = new ejecutarAltasPendientes(); var builder = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json"); var configuration = builder.Build(); string AltaPromociones = string.Empty; postCardAssignCatalog postCardAssign; Response responseContent; Token responseToken; int pendientesEjecutadas = 0; try { AltaPromociones = configuration["AltaPromociones"]; postCardAssign = new postCardAssignCatalog(); gestionarToken token = new gestionarToken(); listPendientes = pendientes.ObtenerAltasPendientes(); responseToken = token.obtenerToken(); if (responseToken.AccessToken != null) { foreach (Pendientes pend in listPendientes) { var data = new StringContent(pend.json, Encoding.UTF8, "application/json"); Logger.LoggerMessage("Promociones API (pendientes): " + pend.json); responseContent = SyncHelper.RunSync <Response>(() => postCardAssign.postCardAssingCatalogAsync(data, AltaPromociones, responseToken)); if (responseContent != null && responseContent.StatusCode == 200) { pendientes.ActualizarEjecucionPendiente(pend); pendientesEjecutadas += 1; } } if (listPendientes.Count == 0) { Logger.LoggerMessage("Promociones API (pendientes): 200 - No se encontraron altas pendientes de ejecutar"); return(StatusCode(200, "No se encontraron altas pendientes de ejecutar")); } else if (pendientesEjecutadas == listPendientes.Count) { Logger.LoggerMessage("Promociones API (pendientes): 200 - Se ejecutaron " + pendientesEjecutadas + " altas pendientes de un total de " + listPendientes.Count); return(StatusCode(200, "200 - Se ejecutaron " + pendientesEjecutadas + " altas pendientes de un total de " + listPendientes.Count)); } else { Logger.LoggerMessage("Promociones API (pendientes): 202 - Se ejecutaron " + pendientesEjecutadas + " altas pendientes de un total de " + listPendientes.Count); return(StatusCode(202, "202 - Se ejecutaron " + pendientesEjecutadas + " altas pendientes de un total de " + listPendientes.Count)); } } else { Logger.LoggerMessage("Promociones API (pendientes): 401 - Error al obtener Token."); return(StatusCode(401, "Error al obtener Token.")); } } catch (Exception ex) { Logger.LoggerMessage("Promociones API (pendientes): 480 - Excepcion no controlada: " + ex.Message.ToString() + " - " + ex.InnerException.ToString()); return(StatusCode(480, "Excepcion no controlada: " + ex.Message.ToString() + " - " + ex.InnerException.ToString())); } }