/* 
        * Metodo
        * Descripcion: Metodo cque retorna un listado de clientes
        * Entrada: void
        * Salida:  List<ClientesWCF>
        */
        public List<ClientesWCF> ObtenerCliente()
        {
            List<ClientesWCF> clientes = new List<ClientesWCF>();

            using (DB_Acme_DevEntities contexto = new DB_Acme_DevEntities())
            {
                var SQLCliente = from cliente in contexto.TB_Cliente select cliente;
                foreach (var item in SQLCliente)
                {
                    ClientesWCF clienteActual = MapearCliente(item);
                    clientes.Add(clienteActual);
                }
            }

            return (clientes);
        }
        /* 
         * Metodo
         * Descripcion: Retorna un listado de productos
         * Entrada: void
         * Salida: List<ProductosWCF>
         */
        public List<ProductosWCF> ObtenerProducto()
        {
            List<ProductosWCF> productos = new List<ProductosWCF>();

            using (DB_Acme_DevEntities contexto = new DB_Acme_DevEntities())
            {
                var SQLProducto = from producto in contexto.TB_Producto select producto;

                foreach (var item in SQLProducto)
                {
                    ProductosWCF productoActual = MapearProducto(item);
                    productos.Add(productoActual);
                }
            }

            return (productos);
        }
        /* 
         * Metodo
         * Descripcion: Retorna un listado de detalle de pedidos
         * Entrada: void
         * Salida: List<DetallePedidos>
         */
        public List<DetallePedidosWCF> ObtenerDetallePedido()
        {
            List<DetallePedidosWCF> detallePedidos = new List<DetallePedidosWCF>();

            using (DB_Acme_DevEntities contexto = new DB_Acme_DevEntities())
            {
                var SQLDetallePedidos = from detallePedido in contexto.TB_DetallePedido select detallePedido;

                foreach (var item in SQLDetallePedidos)
                {
                    DetallePedidosWCF detallePedidoActual = MapearDetallePedido(item);
                    detallePedidos.Add(detallePedidoActual);
                }
            }

            return (detallePedidos);
        }
 /* 
  * Metodo
  * Descripcion: Insertar un cliente
  * Entrada: ClientesWCF cliente
  * Salida: void
  */
 public void InsertarCliente(ClientesWCF cliente)
 {
     using (DB_Acme_DevEntities contexto = new DB_Acme_DevEntities())
     {
         try
         {
             TB_Cliente Cliente = mapearProducto(cliente);
             ObjectParameter idCliente = new ObjectParameter("ID_Cliente", typeof(int));
             contexto.InsertarCliente(idCliente, Cliente.ID_Vendedor, Cliente.ID_Ciudad, Cliente.ID_Documento, Cliente.NombreCompleto, Cliente.NumeroDocumento, Cliente.Telefono, Cliente.Celular, Cliente.Email, Cliente.Direccion);
             contexto.SaveChanges();
         }
         catch (Exception e)
         {
             e.ToString();
         }
     }
 }
 /* 
  * Metodo
  * Descripcion: Eliminar un cliente
  * Entrada: int idCliente
  * Salida: void
  */
 public void EliminarCliente(int idCliente)
 {
     using (DB_Acme_DevEntities contexto = new DB_Acme_DevEntities())
     {
         contexto.EliminarCliente(idCliente);
         contexto.SaveChanges();
     }
 }
 /* 
  * Metodo
  * Descripcion: Inserta los detalle de pedidos del desconectado
  * Entrada: DetallePedidosWCF
  * Salida: void
  */
 public void InsertarDetallePedidos(DetallePedidosWCF detallePedido)
 {
     using (DB_Acme_DevEntities contexto = new DB_Acme_DevEntities())
     {
         TB_DetallePedido DetallePedido = mapearDetallePedidos(detallePedido);
         contexto.InsertarDetallePedidoOffline(
             DetallePedido.ID_Pedido,
             DetallePedido.ID_Producto,
             DetallePedido.Cantidad
         );
         contexto.SaveChanges();
     }
 }