public async void EndTrackTiming(TimingCategory category, TimingVariable variable, string label = null)
        {
            DateTime start;
            TimingDictionaryKey key = ToTimingKey(category, variable);

            if (timingDictionary.TryGetValue(key, out start))
            {
                timingDictionary.Remove(key);

                List<KeyValuePair<string, string>> parameters = new List<KeyValuePair<string, string>>
                {
                    new KeyValuePair<string, string>(GAResources.UserTimingCategoryKey, category.ToString()),
                    new KeyValuePair<string, string>(GAResources.UserTimingVariableKey, variable.ToString()),
                    new KeyValuePair<string, string>(GAResources.UserTimingTimeKey, ((int)(DateTime.Now-start).TotalMilliseconds).ToString()),
                };

                if (!string.IsNullOrWhiteSpace(label))
                    parameters.Add(new KeyValuePair<string, string>(GAResources.UserTimingLabelKey, label));

                await Track(HitTypes.Timing, parameters.ToArray());
            }
            else
            {
                TrackException(string.Format(GAResources.TimingTrackingWasNotStartedFormat, category, variable));
            }
        }
Example #2
0
        public async void EndTrackTiming(TimingCategory category, TimingVariable variable, string label = null)
        {
            DateTime            start;
            TimingDictionaryKey key = ToTimingKey(category, variable);

            if (timingDictionary.TryGetValue(key, out start))
            {
                timingDictionary.Remove(key);

                List <KeyValuePair <string, string> > parameters = new List <KeyValuePair <string, string> >
                {
                    new KeyValuePair <string, string>(GAResources.UserTimingCategoryKey, category.ToString()),
                    new KeyValuePair <string, string>(GAResources.UserTimingVariableKey, variable.ToString()),
                    new KeyValuePair <string, string>(GAResources.UserTimingTimeKey, ((int)(DateTime.Now - start).TotalMilliseconds).ToString()),
                };

                if (!string.IsNullOrWhiteSpace(label))
                {
                    parameters.Add(new KeyValuePair <string, string>(GAResources.UserTimingLabelKey, label));
                }

                await Track(HitTypes.Timing, parameters.ToArray());
            }
            else
            {
                TrackException(string.Format(GAResources.TimingTrackingWasNotStartedFormat, category, variable));
            }
        }