示例#1
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));
            }
        }
示例#2
0
        public override bool Equals(object obj)
        {
            TimingDictionaryKey data = obj as TimingDictionaryKey;

            if (data == null)
            {
                return(false);
            }

            return(data.Category == Category && data.Variable == Variable);
        }
示例#3
0
        public void StartTrackTiming(TimingCategory category, TimingVariable variable)
        {
            TimingDictionaryKey key = ToTimingKey(category, variable);

            if (timingDictionary.ContainsKey(key))
            {
                TrackException(string.Format(GAResources.TimingTrackingHasBeenStartedFormat, category, variable));
            }
            else
            {
                timingDictionary.Add(key, DateTime.Now);
            }
        }