private static void Iterate(SiteHaritasıNode siteHaritasıNode, XmlNode xmlNode) { NodeÇoğalt(siteHaritasıNode, xmlNode); foreach (XmlNode xmlChildNode in xmlNode.ChildNodes) { if (xmlChildNode.LocalName.Equals("siteHaritasıNode", StringComparison.InvariantCultureIgnoreCase)) { var siteHaritasıChildNode = new SiteHaritasıNode(); siteHaritasıNode.ChildNodes.Add(siteHaritasıChildNode); Iterate(siteHaritasıChildNode, xmlChildNode); } } }
private static void NodeÇoğalt(SiteHaritasıNode siteHaritasıNode, XmlNode xmlNode) { //sistem adı siteHaritasıNode.SistemAdı = GetStringValueFromAttribute(xmlNode, "SistemAdı"); //başlık siteHaritasıNode.Başlık = GetStringValueFromAttribute(xmlNode, "Kaynak"); //routes, url string controllerName = GetStringValueFromAttribute(xmlNode, "controller"); string actionName = GetStringValueFromAttribute(xmlNode, "action"); string url = GetStringValueFromAttribute(xmlNode, "url"); if (!string.IsNullOrEmpty(controllerName) && !string.IsNullOrEmpty(actionName)) { siteHaritasıNode.ControllerAdı = controllerName; siteHaritasıNode.ActionAdı = actionName; } else if (!string.IsNullOrEmpty(url)) { siteHaritasıNode.Url = url; } //resim URL siteHaritasıNode.IconClass = GetStringValueFromAttribute(xmlNode, "IconClass"); //izin adı var izinAdları = GetStringValueFromAttribute(xmlNode, "İzinAdları"); if (!string.IsNullOrEmpty(izinAdları)) { var izinServisi = EngineContext.Current.Resolve <IİzinServisi>(); siteHaritasıNode.Visible = izinAdları.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries) .Any(izinAdı => izinServisi.YetkiVer(izinAdı.Trim())); } else { siteHaritasıNode.Visible = true; } // yeni sekmede aç var yeniSekmedeAç = GetStringValueFromAttribute(xmlNode, "YeniSekmedeAç"); bool sonuç; if (!string.IsNullOrWhiteSpace(yeniSekmedeAç) && bool.TryParse(yeniSekmedeAç, out sonuç)) { siteHaritasıNode.YeniSekmedeAç = sonuç; } }
public static bool SistemAdıİçeriyor(this SiteHaritasıNode node, string sistemAdı) { if (node == null) { throw new ArgumentNullException("node"); } if (String.IsNullOrWhiteSpace(sistemAdı)) { return(false); } if (sistemAdı.Equals(node.SistemAdı, StringComparison.InvariantCultureIgnoreCase)) { return(true); } return(node.ChildNodes.Any(cn => SistemAdıİçeriyor(cn, sistemAdı))); }
public XmlSiteHaritası() { RootNode = new SiteHaritasıNode(); }