ALMRestClient.ALMItem.FromXML C# (CSharp) Method

FromXML() public static method

Construct the item from the XML payload - factory method
public static FromXML ( IEnumerable fields ) : ALMItem
fields IEnumerable
return ALMItem
        public static ALMItem FromXML(IEnumerable<XElement> fields)
        {
            ALMItem item = new ALMItem();

            foreach (var field in fields)
            {
                var name = field.Attribute("Name").Value;
                var valueElement = field.Element("Value");

                if (valueElement == null)
                {
                    // skip ones with no values
                    continue;
                }

                var value = valueElement.Value;

                item.Fields.Add(name, value);
            }

            return item;
        }

Usage Example

Example #1
0
        /// <summary>
        /// Get the list of defects
        /// </summary>
        /// <param name="items">Defects result</param>
        private void ReadDefects(List <ALMItem> items)
        {
            int startIndex = 0;
            int pageSize   = 100;
            int total      = 0;

            do
            {
                RestRequest getDefects = new RestRequest(clientConfig.EntitiesAddress);


                AddDomainAndProject(getDefects);
                AddDefect(getDefects);
                getDefects.AddHeader("Accept", "application/xml");

                getDefects.AddParameter("page-size", pageSize);

                // start index appears to be 1-based, despite the documentation on https://MYDOMAIN.saas.hp.com/qcbin/Help/doc_library/api_refs/REST/webframe.html
                getDefects.AddParameter("start-index", startIndex + 1);

                IRestResponse response = Execute(getDefects, "get defects");

                XDocument doc = XDocument.Parse(response.Content);
                total = FindTotal(doc);

                foreach (var entity in doc.Root.Elements())
                {
                    items.Add(ALMItem.FromXML(entity.Elements("Fields").Elements()));
                }

                // time for the next page
                startIndex += pageSize;
            } while (startIndex < total);
        }