public PingResult(ConcurrentDictionary <DateTime, int> pingData, int prevResponseTime) { _lastState = WebSiteState.notChecked; _pingData = pingData; _prevResponseTime = prevResponseTime; _pingCount = pingData.Count; _isOnlineCount = pingData.Count(t => t.Value > 0); var sumValue = pingData.Values.Sum(); if (_isOnlineCount > 0) { _avgResponseTime = sumValue / _isOnlineCount; } }
public static void SavePingResultState(int webSiteId, WebSiteState state) { var item = GetOrAddPingResult(webSiteId); if (state != WebSiteState.notChecked) { item._pingCount++; } if (state == WebSiteState.online) { item._isOnlineCount++; } item._lastState = state; item._lastCheckDate = DateTime.Now; }