Exemple #1
0
 public ProductoForCountingSpecification(ProductoSpecificationParams productoParams)
     : base(x =>
            (string.IsNullOrEmpty(productoParams.Search) || x.Nombre.Contains(productoParams.Search)) &&
            (!productoParams.Marca.HasValue || x.MarcaId == productoParams.Marca) &&
            (!productoParams.Categoria.HasValue || x.CategoriaId == productoParams.Categoria))
 {
 }
Exemple #2
0
        public ProductoWithCategoriaAndMarcaSpecification(ProductoSpecificationParams productoParams)
            : base(x =>
                   (string.IsNullOrEmpty(productoParams.Search) || x.Nombre.Contains(productoParams.Search)) &&
                   (!productoParams.Marca.HasValue || x.MarcaId == productoParams.Marca) &&
                   (!productoParams.Categoria.HasValue || x.CategoriaId == productoParams.Categoria))
        {
            AddInclude(p => p.Categoria);
            AddInclude(p => p.Marca);

            ApplyPagin(productoParams.PageSize * (productoParams.PageIndex - 1), productoParams.PageSize);

            if (!string.IsNullOrEmpty(productoParams.Sort))
            {
                switch (productoParams.Sort)
                {
                case "nombreAsc":
                    AddOrderBy(p => p.Nombre);
                    break;

                case "nombreDesc":
                    AddOrderByDesc(p => p.Nombre);
                    break;

                case "precioAsc":
                    AddOrderBy(p => p.Precio);
                    break;

                case "precioDesc":
                    AddOrderByDesc(p => p.Precio);
                    break;

                case "descripcionAsc":
                    AddOrderBy(p => p.Descripcion);
                    break;

                case "descripcionDesc":
                    AddOrderByDesc(p => p.Descripcion);
                    break;

                default:
                    AddOrderBy(p => p.Nombre);
                    break;
                }
            }
        }