/// <summary>
        ///     Compare current aggregator config against another config.
        /// </summary>
        /// <param name="config">aggregator config</param>
        /// <returns>true if objects are equal</returns>
        public bool Equals(AggregatorConfig config)
        {
            if (!base.Equals(config))
            {
                return(false);
            }

            if (MaxLevel != config.MaxLevel)
            {
                return(false);
            }

            if (AggregationAlgorithm != config.AggregationAlgorithm)
            {
                return(false);
            }

            if (AggregationPeriod != config.AggregationPeriod)
            {
                return(false);
            }

            if (MaxRequests != config.MaxRequests)
            {
                return(false);
            }

            return(true);
        }
        private void CheckAggregatorConfigChange(Pdu pdu)
        {
            if (AggregatorConfigChanged != null)
            {
                AggregatorConfigResponsePayload configPayload = GetPayload(pdu, Constants.AggregatorConfigResponsePayload.TagType, null) as AggregatorConfigResponsePayload;
                if (configPayload != null)
                {
                    AggregatorConfig aggregatorConfig = new AggregatorConfig(configPayload);

                    if (_currentAggregatorConfig == null || !_currentAggregatorConfig.Equals(aggregatorConfig))
                    {
                        _currentAggregatorConfig = aggregatorConfig;
                        AggregatorConfigChanged?.BeginInvoke(this, new AggregatorConfigChangedEventArgs(_currentAggregatorConfig), EndAggregatorConfigChanged, null);
                    }
                }
            }
        }
 /// <summary>
 /// Create aggregator configuration changed event arguments class instance.
 /// </summary>
 /// <param name="aggregatorConfig">New aggregator configuration</param>
 /// <param name="ksiService">KsiService that made the aggregator configuration request</param>
 public AggregatorConfigChangedEventArgs(AggregatorConfig aggregatorConfig, IKsiService ksiService = null)
 {
     AggregatorConfig = aggregatorConfig;
     KsiService       = ksiService;
 }