public TelemetryManager(IActiveSolutionBoundTracker solutionBindingTracker, ITelemetryDataRepository telemetryRepository, IVsVersionProvider vsVersionProvider, ILogger logger, ITelemetryClient telemetryClient, ITelemetryTimer telemetryTimer, IKnownUIContexts knownUIContexts, ICurrentTimeProvider currentTimeProvider) { this.solutionBindingTracker = solutionBindingTracker; this.telemetryRepository = telemetryRepository; this.logger = logger; this.telemetryClient = telemetryClient; this.telemetryTimer = telemetryTimer; this.knownUIContexts = knownUIContexts; this.currentTimeProvider = currentTimeProvider; vsVersion = vsVersionProvider.Version; if (this.telemetryRepository.Data.InstallationDate == DateTimeOffset.MinValue) { this.telemetryRepository.Data.InstallationDate = currentTimeProvider.Now; this.telemetryRepository.Save(); } if (IsAnonymousDataShared) { EnableAllEvents(); } }
public TelemetryManager(IActiveSolutionBoundTracker solutionBindingTracker, ITelemetryDataRepository telemetryRepository, ILogger logger) : this(solutionBindingTracker, telemetryRepository, logger, new TelemetryClient(), new TelemetryTimer(telemetryRepository, new TimerFactory()), new KnownUIContextsWrapper(), DefaultCurrentTimeProvider.Instance) { }
public TelemetryManager(IActiveSolutionBoundTracker solutionBindingTracker, ITelemetryDataRepository telemetryRepository, ILogger logger, ITelemetryClient telemetryClient, ITelemetryTimer telemetryTimer, IKnownUIContexts knownUIContexts) { if (solutionBindingTracker == null) { throw new ArgumentNullException(nameof(solutionBindingTracker)); } if (telemetryRepository == null) { throw new ArgumentNullException(nameof(telemetryRepository)); } if (logger == null) { throw new ArgumentNullException(nameof(logger)); } if (telemetryClient == null) { throw new ArgumentNullException(nameof(telemetryClient)); } if (telemetryTimer == null) { throw new ArgumentNullException(nameof(telemetryTimer)); } if (knownUIContexts == null) { throw new ArgumentNullException(nameof(knownUIContexts)); } this.solutionBindingTracker = solutionBindingTracker; this.telemetryClient = telemetryClient; this.logger = logger; this.telemetryTimer = telemetryTimer; this.telemetryRepository = telemetryRepository; this.knownUIContexts = knownUIContexts; if (this.telemetryRepository.Data.InstallationDate == DateTimeOffset.MinValue) { this.telemetryRepository.Data.InstallationDate = DateTimeOffset.Now; // TODO: Use some mockable clock this.telemetryRepository.Save(); } if (IsAnonymousDataShared) { EnableAllEvents(); } }
public TelemetryTimer(ITelemetryDataRepository telemetryRepository, ITimerFactory timerFactory) { if (telemetryRepository == null) { throw new ArgumentNullException(nameof(telemetryRepository)); } if (timerFactory == null) { throw new ArgumentNullException(nameof(timerFactory)); } this.telemetryRepository = telemetryRepository; timer = timerFactory.Create(); timer.AutoReset = true; timer.Interval = MillisecondsBeforeFirstUpload; }
public TelemetryManager(IActiveSolutionBoundTracker solutionBindingTracker, ITelemetryDataRepository telemetryRepository, ITelemetryClient telemetryClient) { if (solutionBindingTracker == null) { throw new ArgumentNullException(nameof(solutionBindingTracker)); } if (telemetryRepository == null) { throw new ArgumentNullException(nameof(telemetryRepository)); } if (telemetryClient == null) { throw new ArgumentNullException(nameof(telemetryClient)); } this.solutionBindingTracker = solutionBindingTracker; this.telemetryClient = telemetryClient; this.telemetryRepository = telemetryRepository; string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "msenv.dll"); visualStudioVersion = File.Exists(path) ? FileVersionInfo.GetVersionInfo(path).ProductVersion : string.Empty; if (this.telemetryRepository.Data.InstallationDate == DateTime.MinValue) { this.telemetryRepository.Data.InstallationDate = DateTime.Now; this.telemetryRepository.Save(); } this.tryUploadDataTimer = new Timer { Interval = MillisecondsToWaitBetweenUpload, AutoReset = true }; this.firstCallDelayer = new Timer(DelayBeforeFirstUpload) { AutoReset = false }; if (IsAnonymousDataShared) { EnableAllEvents(); } }
public TelemetryManager(IActiveSolutionBoundTracker solutionBindingTracker, ITelemetryDataRepository telemetryRepository, ITelemetryClient telemetryClient) { if (solutionBindingTracker == null) { throw new ArgumentNullException(nameof(solutionBindingTracker)); } if (telemetryRepository == null) { throw new ArgumentNullException(nameof(telemetryRepository)); } if (telemetryClient == null) { throw new ArgumentNullException(nameof(telemetryClient)); } this.solutionBindingTracker = solutionBindingTracker; this.telemetryClient = telemetryClient; this.telemetryRepository = telemetryRepository; if (this.telemetryRepository.Data.InstallationDate == DateTime.MinValue) { this.telemetryRepository.Data.InstallationDate = DateTime.Now; this.telemetryRepository.Save(); } this.tryUploadDataTimer = new Timer { Interval = MillisecondsToWaitBetweenUpload, AutoReset = true }; this.firstCallDelayer = new Timer(DelayBeforeFirstUpload) { AutoReset = false }; if (IsAnonymousDataShared) { EnableAllEvents(); } }
public TelemetryManager(IActiveSolutionBoundTracker solutionBindingTracker, ITelemetryDataRepository telemetryRepository, ILogger logger, ITelemetryClient telemetryClient, ITelemetryTimer telemetryTimer, IKnownUIContexts knownUIContexts, ICurrentTimeProvider currentTimeProvider) { this.solutionBindingTracker = solutionBindingTracker ?? throw new ArgumentNullException(nameof(solutionBindingTracker)); this.telemetryRepository = telemetryRepository ?? throw new ArgumentNullException(nameof(telemetryRepository)); this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); this.telemetryClient = telemetryClient ?? throw new ArgumentNullException(nameof(telemetryClient)); this.telemetryTimer = telemetryTimer ?? throw new ArgumentNullException(nameof(telemetryTimer)); this.knownUIContexts = knownUIContexts ?? throw new ArgumentNullException(nameof(knownUIContexts)); this.currentTimeProvider = currentTimeProvider ?? throw new ArgumentNullException(nameof(currentTimeProvider)); if (this.telemetryRepository.Data.InstallationDate == DateTimeOffset.MinValue) { this.telemetryRepository.Data.InstallationDate = currentTimeProvider.Now; this.telemetryRepository.Save(); } if (IsAnonymousDataShared) { EnableAllEvents(); } }
private static IServerNotificationsTelemetryManager CreateTestSubject(ITelemetryDataRepository dataRepository) { return(new ServerNotificationsTelemetryManager(dataRepository)); }
public TelemetryManager(IActiveSolutionBoundTracker solutionBindingTracker, ITelemetryDataRepository telemetryRepository) : this(solutionBindingTracker, telemetryRepository, new TelemetryClient(), new TelemetryTimer(telemetryRepository, new TimerFactory()), new KnownUIContextsWrapper()) { }
public ServerNotificationsTelemetryManager(ITelemetryDataRepository telemetryRepository) { this.telemetryRepository = telemetryRepository; }