Ejemplo n.º 1
0
        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);
        }