protected override void SetSearchCriteria(ref SearchBuilder sb) { SortExpressions.Clear(); sb.SortExpressions.Clear(); sb.TableAlias = "U"; sb.Fields.Add("UserId"); if (!StringUtils.IsBlank(CompanyName) && CompanyName.ToLower() != "all") { sb.Criteria.Add(string.Format("CompanyName='{0}'", SqlUtils.SafeValue(CompanyName))); } if (BrandId.HasValue) { switch (BrandId.Value) { case 0: sb.Criteria.Add(string.Format("{0} IS NULL", User.Columns.PrimaryBrandId)); break; default: sb.Criteria.Add(string.Format("{0}={1}", User.Columns.PrimaryBrandId, BrandId.Value)); break; } } }
private void AddOrderByClause() { switch (OrderBy) { case OrderBy.Relevance: // Relevance ordering is done within the full text search // However, for empty search we also need to order by date if (StringUtils.IsBlank(GeneralKeyword)) { SortExpressions.RemoveAll(delegate(ISortExpression sortExpression) { string fieldName = sortExpression.FieldName.ToLower(); return( fieldName == Asset.Columns.PublishDate.ToString().ToLower() || fieldName == Asset.Columns.AssetId.ToString().ToLower() ); }); SortExpressions.Add(new DescendingSort(Asset.Columns.PublishDate)); SortExpressions.Add(new DescendingSort(Asset.Columns.AssetId)); } break; case OrderBy.Popularity: // Order assets by download count. If the download count is the same // favour newer assets, on the basis that they have achieved the same // download count in a shorter space of time. This system breaks if // assets are published and unpublished, as the download count does not // reset when an asset is unpublished, so it will not be accurate. SortExpressions.Clear(); SortExpressions.Add(new DescendingSort(Asset.Columns.DownloadCount)); SortExpressions.Add(new DescendingSort(Asset.Columns.UploadDate)); break; case OrderBy.Date: // Order by assets by date, with newer assets first SortExpressions.Clear(); SortExpressions.Add(new DescendingSort(Asset.Columns.PublishDate)); SortExpressions.Add(new DescendingSort(Asset.Columns.AssetId)); break; } }
/// <summary> /// Pulizia delle espressioni di ordinamento /// </summary> public virtual void SortExpressionsClear() { SortExpressions.Clear(); }