public ActionResult Seleccionar()
        {
            ProductoSeleccionarModel productoSeleccionarModel = new ProductoSeleccionarModel();

            productoSeleccionarModel.BuscarPorDescripcion = true;
            return(PartialView(productoSeleccionarModel));
        }
        //[OutputCache(NoStore = true, Duration = 0, VaryByParam = "None")]
        public ActionResult ListadoParaSeleccionar(ProductoSeleccionarModel productoSeleccionarModel)
        {
            Expression <Func <Producto, object> >[] expressions;

            if (productoSeleccionarModel.MostrarStockMaxikioscoId.HasValue)
            {
                expressions = new Expression <Func <Producto, object> >[]
                {
                    p => p.Rubro,
                    p => p.Marca, p => p.CodigosProductos,
                    p => p.Stocks.Select(x => x.StockTransacciones)
                };
            }
            else
            {
                expressions = new Expression <Func <Producto, object> >[]
                {
                    p => p.Rubro,
                    p => p.Marca, p => p.CodigosProductos
                };
            }

            var productos = Uow.Productos.Listado(expressions)
                            .Where(p => !p.EsPromocion &&
                                   (string.IsNullOrEmpty(productoSeleccionarModel.Descripcion) ||
                                    (productoSeleccionarModel.BuscarPorDescripcion && p.Descripcion.ToLower().Contains(productoSeleccionarModel.Descripcion.ToLower())) ||
                                    (!productoSeleccionarModel.BuscarPorDescripcion && p.CodigosProductos.Any(cp => cp.Codigo.StartsWith(productoSeleccionarModel.Descripcion)))));

            if (productoSeleccionarModel.BuscarPorDescripcion)
            {
                productos = productos.OrderBy(p => p.Descripcion);
            }
            else
            {
                productos = productos.OrderBy(p => p.CodigosProductos.Select(c => c.Codigo).FirstOrDefault());
            }

            productos = productos.Take(10);

            ViewBag.MostrarStockMaxikioscoId = productoSeleccionarModel.MostrarStockMaxikioscoId;

            return(PartialView(productos));
        }
        //[OutputCache(NoStore = true, Duration = 0, VaryByParam = "None")]
        public ActionResult ListadoParaSeleccionar(ProductoSeleccionarModel productoSeleccionarModel)
        {
            var productos = Uow.Productos.Listado(p => p.Rubro, p => p.Marca, p => p.CodigosProductos)
                            .Where(p => string.IsNullOrEmpty(productoSeleccionarModel.Descripcion) ||
                                   (productoSeleccionarModel.BuscarPorDescripcion && p.Descripcion.ToLower().Contains(productoSeleccionarModel.Descripcion.ToLower())) ||
                                   (!productoSeleccionarModel.BuscarPorDescripcion && p.CodigosProductos.Any(cp => cp.Codigo.StartsWith(productoSeleccionarModel.Descripcion))));

            if (productoSeleccionarModel.BuscarPorDescripcion)
            {
                productos = productos.OrderBy(p => p.Descripcion);
            }
            else
            {
                productos = productos.OrderBy(p => p.CodigosProductos.Select(c => c.Codigo).FirstOrDefault());
            }

            productos = productos.Take(10);

            return(PartialView(productos));
        }