public void Add(AgentLog log) { lock (syncRoot) { if (log.Type == "Executing") { if (!activeAgents.ContainsKey(log.Agent)) { activeAgents.Add(log.Agent, new AgentCollector(log.Agent)); } activeAgents[log.Agent].Collect(log.Message); if (activeStep == null && steps.LastOrDefault()?.Contains(activeAgents[log.Agent]) != true) { activeStep = new ExecutionOrderStep(activeAgents.Values); } activeStep?.Collect(activeAgents[log.Agent]); } else if (activeAgents.ContainsKey(log.Agent)) { AgentCollector remainingCollector = activeAgents[log.Agent].Finish(log.Message); if (remainingCollector == null) { activeAgents.Remove(log.Agent); } if (activeStep != null) { steps.Add(activeStep); activeStep = null; } } } }
public bool Contains(AgentCollector agentCollector) { return(activeAgents.Contains(agentCollector)); }
public void Collect(AgentCollector agentCollector) { activeAgents.Add(agentCollector); }