protected virtual IList <AggregationItem> GetRangeAggregationItems(string aggregationId, IList <RangeFilterValue> values, IList <AggregationResponse> aggregationResponses) { var result = new List <AggregationItem>(); if (values != null) { foreach (var group in values.GroupBy(v => v.Id)) { var valueId = group.Key; var aggregationValueId = $"{aggregationId}-{valueId}"; var aggregationResponse = aggregationResponses.FirstOrDefault(v => v.Id.EqualsInvariant(aggregationValueId)); if (aggregationResponse?.Values?.Any() == true) { var value = aggregationResponse.Values.First(); var valueLabels = group.GetValueLabels(); var aggregationItem = new AggregationItem { Value = valueId, Count = (int)value.Count, Labels = valueLabels }; result.Add(aggregationItem); } } } return(result); }
public static webModel.AggregationItem ToWebModel(this coreModel.AggregationItem item) { var result = new webModel.AggregationItem(); result.InjectFrom(item); return(result); }
public static webModel.AggregationItem ToWebModel(this coreModel.AggregationItem item) { var result = new webModel.AggregationItem(); result.InjectFrom(item); if (item.Labels != null) { result.Labels = item.Labels.Select(ToWebModel).ToArray(); } return result; }
protected virtual Aggregation GetAttributeAggregation(AttributeFilter attributeFilter, IList <AggregationResponse> aggregationResponses) { var result = new Aggregation { AggregationType = "attr", Field = attributeFilter.Key, Labels = attributeFilter.DisplayNames ?.Select(d => new AggregationLabel { Language = d.Language, Label = d.Name }) .ToArray(), }; var aggregationId = attributeFilter.Key; var aggregationResponse = aggregationResponses.FirstOrDefault(a => a.Id.EqualsInvariant(aggregationId)); if (aggregationResponse != null) { if (attributeFilter.Values == null) { // Return all values result.Items = aggregationResponse.Values.Select(v => new AggregationItem { Value = v.Id, Count = (int)v.Count }).ToArray(); } else { // Return predefined values with localization var aggregationItems = new List <AggregationItem>(); foreach (var group in attributeFilter.Values.GroupBy(v => v.Id)) { var value = aggregationResponse.Values.FirstOrDefault(v => v.Id.EqualsInvariant(group.Key)); if (value != null) { var valueLabels = group.GetValueLabels(); var aggregationItem = new AggregationItem { Value = value.Id, Count = (int)value.Count, Labels = valueLabels }; aggregationItems.Add(aggregationItem); } } if (aggregationItems.Any()) { result.Items = aggregationItems; } } } return(result); }
public static webModel.AggregationItem ToWebModel(this coreModel.AggregationItem item) { var result = new webModel.AggregationItem(); result.InjectFrom(item); if (item.Labels != null) { result.Labels = item.Labels.Select(ToWebModel).ToArray(); } return(result); }
public static webModel.AggregationItem ToWebModel(this coreModel.AggregationItem item) { var result = new webModel.AggregationItem(); result.Count = item.Count; result.IsApplied = item.IsApplied; result.Value = item.Value; if (item.Labels != null) { result.Labels = item.Labels.Select(ToWebModel).ToArray(); } return(result); }
public static webModel.AggregationItem ToWebModel(this coreModel.AggregationItem item) { var result = new webModel.AggregationItem { Value = item.Value, Count = item.Count, IsApplied = item.IsApplied, RequestedLowerBound = item.RequestedLowerBound, RequestedUpperBound = item.RequestedUpperBound, }; if (item.Labels != null) { result.Labels = item.Labels.Select(ToWebModel).ToArray(); } return(result); }
public static webModel.AggregationItem ToWebModel(this coreModel.AggregationItem item) { var result = new webModel.AggregationItem(); result.InjectFrom(item); return result; }