using System; using System.Collections.Generic; using System.Linq; using AsbCloudApp.Services; namespace AsbCloudInfrastructure.Services { public class TelemetryTracker : ITelemetryTracker { private IDictionary _requests = new Dictionary(); private readonly TimeSpan _timeout = TimeSpan.FromMinutes(6); private void _deleteOldRequests() { _requests = _requests.Where(dValue => (DateTime.Now - dValue.Value) < _timeout).ToDictionary(dValue => dValue.Key, dValue => dValue.Value); } public void SaveRequest(string id) { _requests[id] = DateTime.Now; _deleteOldRequests(); } public IEnumerable GetRequests() { _deleteOldRequests(); return _requests.Keys; } } }