public AudienceCollection GetAudience() { var ns = Xml.Root.GetDefaultNamespace().NamespaceName; var audienceNode = Xml.Root.Elements(XName.Get(XmlNames.Audience, ns)); var result = new AudienceCollection(); foreach (var audienceElement in audienceNode.Elements()) { switch (audienceElement.Name.LocalName) { case "AllClients": result.IsAll = true; result.Clear(); break; case "Server": result.IncludesServer = true; break; case "Clients": if (result.IsAll) { continue; } var ids = GetAttributeValue(audienceElement, "id"); if (ids != null) { var targets = CommandTargetCollection.Parse(ids); result.AddRange(targets); } break; } } return(result); }