public GetFacetsArgs TranslateFacetQuery(GetFacetsArgs args) { var facetQueries = args.FacetQueries.ToList(); var list = facetQueries.Where(q => (q.FieldNames.Count() == 1) && q.FieldNames.First() == Constants.IndexFields.ContentType).ToList(); if (list.Count > 0) { var resultCount = list[0].MinimumResultCount; var fieldNames = new[] { args.FieldNameTranslator.GetIndexFieldName(this.FieldName) }; facetQueries.Add(new FacetQuery(null, fieldNames, resultCount, null)); list.ForEach(delegate(FacetQuery f) { facetQueries.Remove(f); }); } return(new GetFacetsArgs(args.BaseQuery, facetQueries, args.VirtualFieldProcessors, args.FieldNameTranslator)); }
public GetFacetsArgs TranslateFacetQuery(GetFacetsArgs args) { var facetQueries = args.FacetQueries.ToList(); var daterangeFacet = facetQueries.Where(q => q.FieldNames.Count() == 1 && q.FieldNames.First() == "daterangehourresolution") .ToList(); if (daterangeFacet.Count > 0) { int?min = daterangeFacet[0].MinimumResultCount; facetQueries.Add(new FacetQuery(null, new[] { args.FieldNameTranslator.GetIndexFieldName("daterange_hour", typeof(string)) }, min, new[] { DateTime.Now.ToString("yyyyMMddHH") })); facetQueries.Add(new FacetQuery(null, new[] { args.FieldNameTranslator.GetIndexFieldName("__smallcreateddate", typeof(DateTime)) }, min, new[] { DateTime.Now.Date.ToString(ContentSearchConfigurationSettings.IndexDateFormat), DateTime.Now.AddDays(-1).Date.ToString(ContentSearchConfigurationSettings.IndexDateFormat) })); facetQueries.Add(new FacetQuery(null, new[] { args.FieldNameTranslator.GetIndexFieldName("daterange_week", typeof(string)) }, min, new[] { DateTime.Now.ToString("yyyyMM") + CultureInfo.InvariantCulture.Calendar.GetWeekOfYear(DateTime.Now, CalendarWeekRule.FirstDay, DayOfWeek.Monday) })); facetQueries.Add(new FacetQuery(null, new[] { args.FieldNameTranslator.GetIndexFieldName("daterange_month", typeof(string)) }, min, new[] { DateTime.Now.ToString("yyyyMM") })); facetQueries.Add(new FacetQuery(null, new[] { args.FieldNameTranslator.GetIndexFieldName("daterange_year", typeof(string)) }, min, null)); daterangeFacet.ForEach(f => facetQueries.Remove(f)); } return(new GetFacetsArgs(args.BaseQuery, facetQueries, args.VirtualFieldProcessors, args.FieldNameTranslator)); }