public void Apply(StatisticReceived @event) { UpdateCounts(@event); UpdateTimestamps(@event); UpdateGraphs(@event); UpdateConditions(@event); }
public void Apply(StatisticReceived @event, bool active) { if (active) { LastActive = Latest(LastActive, @event.Timestamp); } else { LastInactive = Latest(LastInactive, @event.Timestamp); } var groupTime = Truncate(@event.Timestamp); QueryGraph.TryGetValue(groupTime, out var queryCount); QueryGraph[groupTime] = ++queryCount; if (active) { ActiveGraph.TryGetValue(groupTime, out var activeCount); ActiveGraph[groupTime] = ++activeCount; } else { InactiveGraph.TryGetValue(groupTime, out var inactiveCount); InactiveGraph[groupTime] = ++inactiveCount; } }
private void UpdateCounts(StatisticReceived @event) { TotalQueries++; if (@event.Active) { ActiveQueries++; } ActivePercentage = (int)((100M / TotalQueries) * ActiveQueries); }
private void UpdateConditions(StatisticReceived @event) { foreach (var state in @event.ConditionStates) { if (Conditions.TryGetValue(state.Key, out var view) == false) { Conditions[state.Key] = view = new ConditionStatisticView(); } view.Apply(@event, state.Value); } }
private void UpdateTimestamps(StatisticReceived @event) { LastQueried = Latest(LastQueried, @event.Timestamp); if (@event.Active) { LastActive = Latest(LastActive, @event.Timestamp); } else { LastInactive = Latest(LastInactive, @event.Timestamp); } }
private void UpdateGraphs(StatisticReceived @event) { var groupTime = Truncate(@event.Timestamp); QueryGraph.TryGetValue(groupTime, out var queryCount); QueryGraph[groupTime] = ++queryCount; if (@event.Active) { ActiveGraph.TryGetValue(groupTime, out var activeCount); ActiveGraph[groupTime] = ++activeCount; } else { InactiveGraph.TryGetValue(groupTime, out var inactiveCount); InactiveGraph[groupTime] = ++inactiveCount; } }