/// <summary>
        /// Parses the details of a <see cref="CoreResult"/> that could be parsed.
        /// </summary>
        /// <param name="node">The node to inspect.</param>
        /// <returns>The parsed <see cref="CoreResult"/>.</returns>
        private static CoreResult ParseCore(XElement node)
        {
            var core = new CoreResult();

            foreach (var propNode in node.Elements())
            {
                var nodeValue = propNode.Value;

                switch (propNode.Attribute("name").Value.ToLower())
                {
                case "name":
                    if (!string.IsNullOrEmpty(nodeValue))
                    {
                        core.Name = nodeValue;
                    }
                    break;

                case "isdefaultcore":
                    core.IsDefaultCore = bool.Parse(nodeValue);
                    break;

                case "instancedir":
                    if (!string.IsNullOrEmpty(nodeValue))
                    {
                        core.InstanceDir = nodeValue;
                    }
                    break;

                case "datadir":
                    if (!string.IsNullOrEmpty(nodeValue))
                    {
                        core.DataDir = nodeValue;
                    }
                    break;

                case "starttime":
                    if (!string.IsNullOrEmpty(nodeValue))
                    {
                        core.StartTime = DateTime.Parse(nodeValue);
                    }
                    break;

                case "uptime":
                    if (!string.IsNullOrEmpty(nodeValue))
                    {
                        core.Uptime = long.Parse(nodeValue);
                    }
                    break;

                case "index":
                    // Parse all Index responses.
                    core.Index = ParseCoreIndex(propNode);
                    break;
                }
            }

            return(core);
        }
        /// <summary>
        /// Parses the details of a <see cref="CoreResult"/> that could be parsed.
        /// </summary>
        /// <param name="node">The node to inspect.</param>
        /// <returns>The parsed <see cref="CoreResult"/>.</returns>
        private static CoreResult ParseCore(XElement node) {
            var core = new CoreResult();

            foreach (var propNode in node.Elements()) {
                var nodeValue = propNode.Value;

                switch (propNode.Attribute("name").Value.ToLower()) {
                    case "name":
                        if (!string.IsNullOrEmpty(nodeValue))
                            core.Name = nodeValue;
                        break;
                    case "isdefaultcore":
                        core.IsDefaultCore = bool.Parse(nodeValue);
                        break;
                    case "instancedir":
                        if (!string.IsNullOrEmpty(nodeValue))
                            core.InstanceDir = nodeValue;
                        break;
                    case "datadir":
                        if (!string.IsNullOrEmpty(nodeValue))
                            core.DataDir = nodeValue;
                        break;
                    case "starttime":
                        if (!string.IsNullOrEmpty(nodeValue))
                            core.StartTime = DateTime.Parse(nodeValue);
                        break;
                    case "uptime":
                        if (!string.IsNullOrEmpty(nodeValue))
                            core.Uptime = long.Parse(nodeValue);
                        break;
                    case "index":
                        // Parse all Index responses.
                        core.Index = ParseCoreIndex(propNode);
                        break;
                }
            }

            return core;
        }