/// <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); }
/// <summary> /// Retourne cube qui peut être null. /// </summary> /// <param name="key">CubeKey.</param> /// <returns>CounterCube.</returns> ICube IHyperCube.GetCube(CubeKey key) { ICube cube; _cubes.TryGetValue(key, out cube); return(cube); }
/// <summary> /// Rend un axe au format CSV. /// </summary> /// <param name="hyperCube">HyperCube.</param> /// <param name="context">Contexte.</param> /// <param name="writer">Writer CSV.</param> /// <param name="activeCounters">Compteur actifs.</param> /// <param name="axis">Axe.</param> private static void CreateCsvAxis(IHyperCube hyperCube, Context context, TextWriter writer, Dictionary <string, string> activeCounters, string axis) { CounterCubeCriteria criteria = new CounterCubeCriteria(axis, TimeLevel.Hour); CubeKey key = criteria.CreateCubeKey(context.EndDate); ICube cube = hyperCube.GetCube(key); if (cube != null && IsShown(context.EndDate, context.Filtre, hyperCube, criteria)) { writer.Write(axis); writer.Write(";"); double total = cube.GetCounter(Analytics.ElapsedTime).GetValue(CounterStatType.Total); writer.Write(Convert.ToString(total, CultureInfo.CurrentCulture)); writer.Write(";"); double hits = cube.GetCounter(Analytics.ElapsedTime).GetValue(CounterStatType.Hits); writer.Write(Convert.ToString(hits, CultureInfo.CurrentCulture)); writer.Write(";"); double avg; foreach (ICounterDefinition definition in hyperCube.AllDefinitions) { if (activeCounters.ContainsKey(definition.Code)) { ICounter counter = cube.GetCounter(definition.Code); avg = (counter != null) ? counter.GetValue(CounterStatType.Avg) : 0; writer.Write(string.Format(CultureInfo.CurrentCulture, "{0:0.##}", avg)); writer.Write(";"); } } writer.WriteLine(); } }
void Start() { systemScript = GetComponent <centralSystem>(); GameObject obj; for (int m = 0; m < systemScript.textSet.GetLength(0); m++) { for (int n = 0; n < systemScript.textSet.GetLength(1); n++) { obj = new GameObject(m.ToString() + n.ToString("D2")); CubeKey CK = obj.AddComponent <CubeKey>(); CK.myPosition = new Vector3(keyPosX1(n), keyPosY1(m), 0); } } }
/// <summary> /// Crée une nouvelle instance. /// </summary> /// <param name="databaseName">Nom de la base.</param> /// <param name="key">Clef.</param> internal ExternalCube(string databaseName, CubeKey key) { _databaseName = databaseName; _key = key; }