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);
        }
Example #2
0
        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;
 }