void MonitoringChannelAgentsChanged(object sender, AgentsChangedEventArgs e) { foreach (string uri in e.AgentsRemoved) { Agents.Remove(new MonitoredAgentViewModel(_monitoringChannel) { Uri = uri }); } foreach (agentType agent in e.AgentsUpdated) { MonitoredAgentViewModel avm = CreateAgentViewModel(agent); int index; if ((index = _agents.IndexOf(avm)) != -1) { _agents[index].DisplayName = avm.DisplayName; _agents[index].StartTime = avm.StartTime; _agents[index].Status = avm.Status; _agents[index].MediaTypes.Clear(); if (avm.MediaTypes != null) { foreach (string m in avm.MediaTypes) { _agents[index].MediaTypes.Add(m); } } } else { Agents.Add(avm); } } if (!IsMonitoringReady && (Agents.Count > 0 || Customers.Count > 0 || Participants.Count > 0)) { IsMonitoringReady = true; } }
private void ModelAgentsChanged(object sender, AgentsChangedEventArgs e) { foreach (string uri in e.AgentsRemoved) { Agents.Remove(new SupervisedAgentViewModel(Model) { Uri = uri }); } foreach (agentType agent in e.AgentsUpdated) { SupervisedAgentViewModel avm = CreateAgentViewModel(agent); int index; if ((index = _agents.IndexOf(avm)) != -1) { _agents[index].DisplayName = avm.DisplayName; _agents[index].StartTime = avm.StartTime; _agents[index].Status = avm.Status; _agents[index].MediaTypes.Clear(); if (avm.MediaTypes != null) { foreach (string m in avm.MediaTypes) { _agents[index].MediaTypes.Add(m); } } } else { avm.PropertyChanged += AvmPropertyChanged; avm.Monitored += AvmMonitored; Agents.Add(avm); } } }