/// <summary> /// Returns the type of axis than represents specified node. Not supported in <c>EPPlus</c> library. /// </summary> /// <param name="axis"><c>Xml</c> node than represent an axis definition.</param> /// <param name="documentHelper">Target xml document helper.</param> /// <returns> /// A <see cref="KnownAxisType" /> value. /// </returns> /// <exception cref="T:System.ArgumentNullException">If <paramref name="axis" /> is <c>null</c>.</exception> /// <exception cref="T:System.InvalidOperationException">If <paramref name="axis" /> is not an axis.</exception> public static KnownAxisType ExtractAxisType(this XmlNode axis, IXmlHelper documentHelper) { SentinelHelper.ArgumentNull(axis, nameof(axis)); SentinelHelper.IsFalse(axis.Name.Contains("catAx") || axis.Name.Contains("valAx") || axis.Name.Contains("dateAx"), "Imposible extraer tipo. el nodo no es de tipo eje"); var idElement = documentHelper.GetXmlNode(axis, "c:axId"); var valueAttr = idElement.Attributes["val"]; var value = valueAttr.Value; switch (value) { case "2": return(KnownAxisType.PrimaryValueAxis); case "3": return(KnownAxisType.SecondaryCategoryAxis); case "4": return(KnownAxisType.SecondaryValueAxis); default: return(KnownAxisType.PrimaryCategoryAxis); } }