Пример #1
0
        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}");
        }
Пример #2
0
        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));
        }