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 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)); } }
private TimingDictionaryKey ToTimingKey(TimingCategory category, TimingVariable variable) { return(new TimingDictionaryKey { Category = category, 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); } }
private TimingDictionaryKey ToTimingKey(TimingCategory category, TimingVariable variable) { return new TimingDictionaryKey { Category = category, Variable = variable }; }