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)); } }
public override bool Equals(object obj) { TimingDictionaryKey data = obj as TimingDictionaryKey; if (data == null) { return(false); } return(data.Category == Category && data.Variable == Variable); }
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); } }