public static string GetClass(this NavigationViewModel model, NavigationNode node, string inputClass = null, string activeClass = "active", bool makeParentNodesActive = false) { if (node == null) { return(inputClass); } if (model.CurrentNode != null && (node.EqualsNode(model.CurrentNode.Value))) { if (!string.IsNullOrEmpty(inputClass)) { inputClass = activeClass + " " + inputClass; } else { inputClass = activeClass; } } else if (makeParentNodesActive) { if (model.HasActiveChild(node)) { if (!string.IsNullOrEmpty(inputClass)) { inputClass = activeClass + " " + inputClass; } else { inputClass = activeClass; } } } if (string.IsNullOrEmpty(node.CssClass)) { return(inputClass); } else { if (!string.IsNullOrEmpty(inputClass)) { return(inputClass + " " + node.CssClass); } return(node.CssClass); } }