/// <summary>
        /// Obtener los pedidos del cliente por su id
        /// </summary>
        /// <param name="idCliente"></param>
        /// <returns></returns>
        public static List <Pedido> ObtenerPedidoPorIdCliente(int idCliente)
        {
            List <Pedido> pedidos = new List <Pedido>();

            //Creacion de una factory de Cliente
            using (var db = new DBEntities())
            {
                try
                {
                    var queryPedido = db.PEDIDO.Where(pedido => pedido.IDCLIENTE == idCliente).ToList();

                    foreach (var p in queryPedido)
                    {
                        Pedido pedido = new Pedido();
                        pedido.IdPedido      = (int)p.IDPEDIDO;
                        pedido.Cliente.Id    = idCliente;
                        pedido.FechaPedido   = p.FECHAPEDIDO;
                        pedido.FechaEntrega  = p.FECHAENTREGA;
                        pedido.Ciudad        = p.CIUDAD;
                        pedido.Direccion     = p.DIRECCIONPEDIDO;
                        pedido.Pais          = p.PAIS;
                        pedido.EstadoPedido  = RepositorioEstadoPedido.ObtenerEstadoPedidoById((int)p.IDESTADOPEDIDO);
                        pedido.DetallePedido = RepositorioDetallePedido.ObtenerDetallePedido(pedido.IdPedido);

                        pedidos.Add(pedido);
                    }
                    return(pedidos);
                }
                catch (Exception ex)
                {
                    ex.InnerException.ToString();
                    return(null);
                }
            }
        }
        public static List <Pedido> ReadAll()
        {
            try
            {
                TipoUsuarioFactory factory = new ClienteFactory();

                List <Pedido> list = new List <Pedido>();
                using (var db = new DBEntities())
                {
                    var listPedido = db.PEDIDO.ToList();
                    if (listPedido.Count > 0)
                    {
                        foreach (var p in listPedido)
                        {
                            Pedido pedido = new Pedido();
                            pedido.IdPedido      = (int)p.IDPEDIDO;
                            pedido.FechaPedido   = p.FECHAPEDIDO;
                            pedido.FechaEntrega  = p.FECHAENTREGA;
                            pedido.Ciudad        = p.CIUDAD;
                            pedido.Direccion     = p.DIRECCIONPEDIDO;
                            pedido.Pais          = p.PAIS;
                            pedido.EstadoPedido  = RepositorioEstadoPedido.ObtenerEstadoPedidoById((int)p.IDESTADOPEDIDO);
                            pedido.DetallePedido = RepositorioDetallePedido.ObtenerDetallePedido(pedido.IdPedido);
                            //Crear una instancia cliente con el uso de ClienteFactory
                            TipoUsuario cli = factory.createTipoUsuario();
                            //Recuperar datos del cliente por su id
                            cli.ObtenerDatosPorId((int)p.IDCLIENTE);
                            pedido.Cliente = (Cliente)cli;
                            //Obtener detalle del pedido
                            pedido.DetallePedido = RepositorioDetallePedido.ObtenerDetallePedido(pedido.IdPedido);


                            list.Add(pedido);
                        }
                    }

                    return(list);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return(new List <Pedido>());
            }
        }
        /// <summary>
        /// Obtener datos del Pedido segun su id de pedido
        /// </summary>
        /// <param name="idPedido"></param>
        /// <returns></returns>
        public static Pedido ObtenerPedidoPorId(int idPedido)
        {
            //Creacion de una factory de Cliente
            TipoUsuarioFactory factory = new ClienteFactory();

            using (var db = new DBEntities())
            {
                try
                {
                    //Realizar consulta para obtener datos del pedido
                    var queryPedido = db.PEDIDO.Include("CLIENTE").Where(pedido => pedido.IDPEDIDO == idPedido).FirstOrDefault();

                    //Devolver null si la consulta no entrega resultados
                    if (queryPedido == null)
                    {
                        return(null);
                    }

                    Pedido p = new Pedido();
                    p.IdPedido     = (int)queryPedido.IDPEDIDO;
                    p.FechaPedido  = queryPedido.FECHAPEDIDO;
                    p.FechaEntrega = queryPedido.FECHAENTREGA;
                    p.Direccion    = queryPedido.DIRECCIONPEDIDO;
                    p.Ciudad       = queryPedido.CIUDAD;
                    p.Pais         = queryPedido.PAIS;

                    //Crear una instancia cliente con el uso de ClienteFactory
                    TipoUsuario cli = factory.createTipoUsuario();
                    //Recuperar datos del cliente por su id
                    cli.ObtenerDatosPorId((int)queryPedido.IDCLIENTE);

                    p.Cliente = (Cliente)cli;
                    //Obtener el estado del pedido por su id
                    p.EstadoPedido = RepositorioEstadoPedido.ObtenerEstadoPedidoById((int)queryPedido.IDESTADOPEDIDO);
                    //Obtener el detalle del pedido por id
                    p.DetallePedido = RepositorioDetallePedido.ObtenerDetallePedido((int)p.IdPedido);
                    return(p);
                }catch (Exception ex)
                {
                    return(null);
                }
            }
        }