public override void ConfigureSorting(IFilteredModel <SneakerReference> model) { model.AddSortParameters(criterion => criterion switch { SortCriteria.Popular => new SortParameter(criterion, "likes"), SortCriteria.Newest => new SortParameter(criterion, "releasedate"), SortCriteria.Featured => new SortParameter(criterion, "releasedate"), SortCriteria.PriceFromLow => new SortParameter(criterion, "price", SortDirection.Ascending), SortCriteria.PriceFromHigh => new SortParameter(criterion, "price"), _ => throw new ArgumentException("No such sort criteria") });
public override void ConfigureFilter(IFilteredModel <SneakerReference> model) { if (AdditionalParams != null && AdditionalParams.TryGetValue("brandID", out var brandID)) { model.AddHiddenFilterGroup("brandname", ExpressionType.Equal) .AssignParameter(Convert.ToString(brandID), Convert.ToString(brandID)); } else if (AdditionalParams != null && AdditionalParams.TryGetValue("modelID", out var modelID)) { model.AddHiddenFilterGroup("basemodel", ExpressionType.Equal) .AssignParameter(Convert.ToString(modelID), Convert.ToString(modelID)); } else { model.AddFilterGroup("Brand", "brandname") .AssignParameters(Catalog.SneakerBrandsList); } model.AddForeignFilterGroup <SneakerProduct>("Size", "size") .AssignParameters(Catalog.SneakerSizesList, size => new FilterParameter(size.Europe.ToString("#.#"), size)); model.AddFilterGroup("Color", "color", ExpressionType.Or) .AssignParameters(Catalog.FilterColors, color => new FilterParameter(color.Name, color.Name.ToUpper(), ExpressionType.Regex) { SourceValue = color }); model.AddFilterGroup("Price", "price", ExpressionType.And) .AssignParameters( new FilterParameter("Price (min)", 0, ExpressionType.GreaterThanOrEqual) { Checked = false, ImmutableValue = false }, new FilterParameter("Price (max)", 0, ExpressionType.LessThanOrEqual) { Checked = false, ImmutableValue = false } ); model.AddForeignFilterGroup <SneakerProduct>("Condition", "condition") .AssignParameters(typeof(SneakerCondition)); }
public abstract void ConfigureSorting(IFilteredModel <TEntity> model);