//Ordena los clientes de una caja
        private void OrdernarCaja(int NumeroCaja)
        {
            _db = new LineaSupermercadoContext();
            List <CajaCliente> clientes = _db.Cajas.Include("Clientes").First(x => x.ID == NumeroCaja).Clientes.Where(x => x.Estado == 0).OrderBy(x => x.Orden).ToList();

            foreach (CajaCliente cajaCli in clientes)
            {
                cajaCli.Orden            = cajaCli.Orden - 1;
                _db.Entry(cajaCli).State = EntityState.Modified;
                _db.SaveChanges();
            }
        }
        //Desplaza clientes desde una caja hacia otra
        private void DesplazarClientes(int NumeroCajaAnt, int NumeroCajaNueva)
        {
            _db = new LineaSupermercadoContext();
            List <CajaCliente> clientes = _db.Cajas.Include("Clientes").First(x => x.ID == NumeroCajaAnt).Clientes.Where(x => x.Estado == 0).OrderBy(x => x.Orden).ToList();

            if (clientes.Count() > 0)
            {
                foreach (CajaCliente cajaCli in clientes)
                {
                    cajaCli.IDCaja = NumeroCajaNueva;
                    cajaCli.Orden  = _db.CajaCliente.Where(x => x.IDCaja == cajaCli.IDCaja).Select(x => x.Orden).DefaultIfEmpty(0).Max() + 1;
                    _db.Entry <CajaCliente>(cajaCli).State = EntityState.Modified;
                    _db.SaveChanges();
                }
            }
        }
        //Atiendo a un cliente
        private void btnAtenderCliente_Click(object sender, RoutedEventArgs e)
        {
            _db = new LineaSupermercadoContext();
            Caja c    = (Caja)((Button)e.Source).DataContext;
            Caja caja = _db.Cajas.Where(x => x.ID == c.ID).Include("Clientes").First();

            CajaCliente clienteAtendido = caja.Clientes.Where(x => x.Estado == 0).OrderBy(x => x.Orden).First();

            clienteAtendido.Estado           = 1;
            _db.Entry(clienteAtendido).State = EntityState.Modified;
            _db.SaveChanges();

            Cliente cliente = _db.Clientes.Find(clienteAtendido.IDCliente);

            MessageBox.Show("Atendiendo al cliente: " + cliente.Nombre);

            //Ordeno nuevamente el conjunto de clientes
            OrdernarCaja(caja.ID);

            //Actualizo cajas
            RefreshDatagrid();
        }