Ejemplo n.º 1
0
        public void Add(Entity entity, ICollection<PropertyAggregatorUpdate> updates)
        {
            Count++;

            foreach (var u in updates) {
                _aggregators[u.Config.Index].Add(u.Values);
            }

            if (NoGroupResults) return;

            AggregationResult groupResult;

            var key = entity.GetKey(_keyIndex);
            if (!_groupResults.TryGetValue(key, out groupResult)) {
                groupResult = new AggregationResult(_metadata, _config, _keyIndex + 1);
                _groupResults.Add(key, groupResult);
            }

            groupResult.Add(entity, updates);
        }
Ejemplo n.º 2
0
        public void Remove(Entity entity, ICollection<PropertyAggregatorUpdate> updates)
        {
            Count--;

            foreach (var u in updates) {
                _aggregators[u.Config.Index].Remove(u.Values);
            }

            if (NoGroupResults) return;

            var key = entity.GetKey(_keyIndex);
            var groupResult = _groupResults[key];
            groupResult.Remove(entity, updates);

            if (groupResult.Count == 0) {
                _groupResults.Remove(key);
            }
        }
Ejemplo n.º 3
0
        public void Update(Entity entity, ICollection<PropertyAggregatorUpdate> updates, PropertyMetadata property, decimal newValue)
        {
            foreach (var u in updates) {
                _aggregators[u.Config.Index].Update(u.Values, property, newValue);
            }

            if (NoGroupResults) return;

            var key = entity.GetKey(_keyIndex);
            var groupResult = _groupResults[key];
            groupResult.Update(entity, updates, property, newValue);
        }