public static void Run([QueueTrigger("%nombreColaPedidos%", Connection = "cadenaConexionColaPedidos")] CloudQueueMessage cloudMessage, ILogger log) { string message = cloudMessage.AsString; Pedido pedido = new Pedido(); try { pedido = JsonConvert.DeserializeObject <Pedido>(message); } catch (Exception) { throw new Exception($"{nameof(CrearPedido)} el mensaje {message} no se pudo asignar como un nuevo pedido"); } string cadenaConexionBaseDatos = Environment.GetEnvironmentVariable("cadenaConexionBaseDatos", EnvironmentVariableTarget.Process); string nombreBaseDatos = Environment.GetEnvironmentVariable("nombreBaseDatos", EnvironmentVariableTarget.Process).ToLower(); string baseUrlErp = Environment.GetEnvironmentVariable("baseUrlErp", EnvironmentVariableTarget.Process); if (string.IsNullOrEmpty(cadenaConexionBaseDatos)) { throw new Exception($"{nameof(CrearPedido)} la configuracion cadenaConexionBaseDatos no a sido asignada"); } if (string.IsNullOrEmpty(cadenaConexionBaseDatos)) { throw new Exception($"{nameof(CrearPedido)} la configuracion nombreBaseDatos no a sido asignada"); } if (string.IsNullOrEmpty(baseUrlErp)) { throw new Exception($"{nameof(CrearPedido)} la configuracion baseUrlErp no a sido asignada"); } dtoPedido dtoPedido = new dtoPedido(cadenaConexionBaseDatos, nombreBaseDatos); erpPedido erpPedido = new erpPedido(baseUrlErp); dtoPedido.Crear(pedido); erpPedido.Crear(pedido); log.LogInformation($"{nameof(CrearPedido)} se proceso el mensaje \r {message}"); }
public static async Task <IActionResult> Run([HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req, ILogger log) { Response <List <Pedido> > response = new Response <List <Pedido> > { UUID = Guid.NewGuid().ToString() }; try { var requestBody = JsonConvert.DeserializeObject <reqConsultarPedido>(await new StreamReader(req.Body).ReadToEndAsync()); string cadenaConexionBaseDatos = Environment.GetEnvironmentVariable("cadenaConexionBaseDatos", EnvironmentVariableTarget.Process); string nombreBaseDatos = Environment.GetEnvironmentVariable("nombreBaseDatos", EnvironmentVariableTarget.Process).ToLower(); if (string.IsNullOrEmpty(cadenaConexionBaseDatos)) { response.errores = new List <string> { "la configuracion cadenaConexionBaseDatos no a sido asignada" }; } if (string.IsNullOrEmpty(cadenaConexionBaseDatos)) { if (response.errores == null) { response.errores = new List <string>(); } response.errores.Add("la configuracion nombreBaseDatos no a sido asignada"); } if (response.errores == null || response.errores.Count <= 0) { try { dtoPedido dtoPedido = new dtoPedido(cadenaConexionBaseDatos, nombreBaseDatos); List <Pedido> pedidos = new List <Pedido>(); response.codigo = (int)CodigoRespuesta.consultaSinDatos; if (string.IsNullOrEmpty(requestBody.cliente)) { pedidos = dtoPedido.Consultar(); } else { pedidos = dtoPedido.ConsultarPorCliente(requestBody.cliente); } if (pedidos.Count > 0) { response.esExitoso = true; response.codigo = (int)CodigoRespuesta.consultaExitosa; } response.resultado = new List <Pedido>(); response.resultado = pedidos; } catch (Exception ex) { if (response.errores == null) { response.errores = new List <string>(); } response.codigo = (int)CodigoRespuesta.consultaErronea; response.errores.Add($"el pedido no pudo ser consultado se produjo una falla en la consulta {ex.Message}"); } } else { response.codigo = (int)CodigoRespuesta.consultaErronea; } } catch (Exception ex) { if (response.errores == null) { response.errores = new List <string>(); } response.codigo = (int)CodigoRespuesta.errorInterno; response.errores.Add($"el pedido no pudo ser consultado se produjo un error inesperado {ex.Message}"); } response.mensaje = $"se finalizo la transaccion la consulta del pedido quedo con estado {(CodigoRespuesta)response.codigo}"; response.fecha = DateTime.UtcNow; return(new OkObjectResult(response)); }