internal static SiteMapEntity[] GetEntities(string EntityType) { List <SiteMapEntity> _list = new List <SiteMapEntity>(); SqlCommand getCommand = getEntitySQL(EntityType); Action <System.Data.IDataReader> readEntities = rd => { while (rd.Read()) { SiteMapEntity entity = new SiteMapEntity(); entity.EntityID = rd.FieldInt("ID"); entity.Name = XmlCommon.GetLocaleEntry(rd.Field("Name"), Customer.Current.LocaleSetting, false); entity.SEName = rd.Field("SEName"); entity.EntityType = EntityType; _list.Add(entity); } }; DB.UseDataReader(getCommand, readEntities); return(_list.ToArray()); }
private void writeEntity(String group) { SiteMapEntity[] entities; if (group.ToLowerInvariant() != "topic") { entities = NestedSiteMapEntity.GetEntities(group); } else { entities = SiteMapEntity.GetTopics(group); } if (entities.Length == 0) { return; } XmlElement cat = mapDoc.CreateElement("node"); XmlAttribute txt = mapDoc.CreateAttribute("Text"); txt.Value = getHeader(group); cat.Attributes.Append(txt); this.SiteMapRoot.AppendChild(cat); if (group.Equals("topic", StringComparison.OrdinalIgnoreCase)) { foreach (SiteMapEntity ent in entities) { cat.AppendChild(ent.ToSiteMapTopicNode(mapDoc)); } } else { foreach (SiteMapEntity ent in entities) { cat.AppendChild(ent.ToSiteMapNode(mapDoc)); } } }
internal static SiteMapEntity[] GetTopics(string group) { List <SiteMapEntity> _list = new List <SiteMapEntity>(); SqlCommand getCommand = new SqlCommand("select * from Topic where Deleted = 0 and Published=1 and ShowInSiteMap = 1 " + CommonLogic.IIF(SiteMap.Settings.TopicFiltering, " and (storeid = 0 or storeid =" + AppLogic.StoreID() + ")", "") + " order by storeid desc, DisplayOrder desc, name"); Action <System.Data.IDataReader> readTopics = rd => { while (rd.Read()) { SiteMapEntity entity = new SiteMapEntity(); entity.EntityID = rd.FieldInt("TopicID"); entity.Name = XmlCommon.GetLocaleEntry(rd.Field("Name"), Customer.Current.LocaleSetting, false); entity.SEName = XmlCommon.GetLocaleEntry(rd.Field("Name"), Customer.Current.LocaleSetting, false); entity.EntityType = "topic"; if (_list.FirstOrDefault(t => t.Name == entity.Name) == null) { _list.Add(entity); } } }; DB.UseDataReader(getCommand, readTopics); return(_list.ToArray()); }