Ejemplo n.º 1
0
        /// <summary>
        /// Ajoute un compteur.
        /// </summary>
        /// <param name="counter">Compteur.</param>
        /// <param name="mergeTimeAxis">Indique si l'axe de temps doit être mergé.</param>
        /// <param name="mergeDate">Date à utiliser pour le merge.</param>
        internal void AddCounter(CounterData counter, bool mergeTimeAxis, DateTime mergeDate)
        {
            // Alimentation du dictionnaire des axes.
            string axis = counter.Axis;

            if (!_axis.ContainsKey(axis))
            {
                _axis.Add(axis, null);
            }

            if (_counters == null)
            {
                // Alimentation de la base de données des compteurs.
                string counterCode = counter.CounterCode;
                if (counterCode != null && !_counterDefinitions.ContainsKey(counterCode))
                {
                    _counterDefinitions.Add(
                        counterCode,
                        new CounterDefinition(counterCode, counter.CounterLabel, 1, 0, 0));
                }
            }

            // Alimentation du cube de données.
            DateTime startDate = mergeTimeAxis ? mergeDate : counter.StartDate;
            CubeKey  key       = new CubeKey(startDate, axis, TimeLevel.ValueOf(counter.Level));
            ICube    cube;

            if (!_cubes.TryGetValue(key, out cube))
            {
                cube = new ExternalCube(_name, key);
                _cubes.Add(key, cube);
            }

            ((ExternalCube)cube).AddCounter(counter);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Crée un nouveau compteur.
        /// </summary>
        /// <param name="cube">Cube contenant le compteur.</param>
        /// <param name="counter">Données du compteur.</param>
        internal ExternalCounter(ExternalCube cube, CounterData counter)
        {
            _counter = counter;
            _cube    = cube;

            // Indexation de l'échantillonnage.
            _sampleData = new Dictionary <double, CounterSampleData>();
            foreach (CounterSampleData data in counter.Sample)
            {
                _sampleData[data.SampleValue] = data;
            }
        }