Esempio n. 1
0
 public NestedSiteMapEntity(UrlHelper url, SiteMapEntityHelper siteMapEntityHelper, SiteMapSettings settings)
     : base(url, siteMapEntityHelper)
 {
     Settings = settings;
     Children = new NestedSiteMapEntity[0];
     Products = new SiteMapProduct[0];
 }
Esempio n. 2
0
 public StandardSiteMap(UrlHelper urlHelper, SiteMapSettings settings, SiteMapEntityHelper siteMapEntityHelper, NestedSiteMapEntityHelper nestedSiteMapEntityHelper)
 {
     UrlHelper                 = urlHelper;
     Settings                  = settings;
     SiteMapEntityHelper       = siteMapEntityHelper;
     NestedSiteMapEntityHelper = nestedSiteMapEntityHelper;
 }
        public void GetProducts(SiteMapSettings settings)
        {
            var retCmd = GetProductsCommand();
            var xList  = new List <SiteMapProduct>();

            if (settings.ProductFiltering)
            {
                retCmd.Parameters["@StoreID"].Value = AppLogic.StoreID();
            }

            Action <System.Data.IDataReader> readEntities = rd =>
            {
                while (rd.Read())
                {
                    var prd = new SiteMapProduct(Url, SiteMapEntityHelper);
                    prd.EntityID = rd.FieldInt("ProductID");
                    prd.Name     = XmlCommon.GetLocaleEntry(rd.Field("Name"), Customer.Current.LocaleSetting, false);
                    prd.SEName   = rd.Field("SEName");
                    xList.Add(prd);
                }
            };

            DB.UseDataReader(retCmd, readEntities);
            Products = xList.ToArray();
        }
        public NestedSiteMapEntity[] GetEntities(string EntityType, SiteMapSettings settings)
        {
            var _list = new Dictionary <int, NestedSiteMapEntity>();

            var getCommand = GetEntitySQL(EntityType, settings);
            Action <System.Data.IDataReader> readEntities = rd =>
            {
                while (rd.Read())
                {
                    var entity = new NestedSiteMapEntity(Url, SiteMapEntityHelper)
                    {
                        EntityID       = rd.FieldInt("ID"),
                        Name           = XmlCommon.GetLocaleEntry(rd.Field("Name"), Customer.Current.LocaleSetting, false),
                        SEName         = rd.Field("SEName"),
                        ParentEntityID = rd.FieldInt("ParentID"),
                        EntityType     = EntityType,
                    };

                    entity.GetProducts(settings);
                    _list.Add(entity.EntityID, entity);
                }
            };

            DB.UseDataReader(getCommand, readEntities);

            return(OrganizeEntities(_list).ToArray());
        }
        string ProductXML(SiteMapProduct product, SiteMapSettings settings)
        {
            var link = UrlHelper
                       .BuildProductLink(product.EntityID, product.SEName);

            return(string.Format(
                       "<url><loc>{0}{1}</loc><changefreq>{2}</changefreq><priority>{3}</priority></url>\n",
                       AppLogic.GetStoreHTTPLocation(
                           useSsl: true,
                           noVirtualNoSlash: true),
                       link,
                       settings.ObjectChangeFrequency,
                       settings.ObjectPriority));
        }
        public string GetEntityProductURLNodes(string entityType, int EntityID, SiteMapSettings settings)
        {
            var entity = new NestedSiteMapEntity(UrlHelper, SiteMapEntityHelper);

            entity.EntityType = entityType;
            entity.EntityID   = EntityID;
            entity.GetProducts(settings);

            var sb = new StringBuilder();

            foreach (var siteMapProduct in entity.Products)
            {
                sb.Append(ProductXML(siteMapProduct, settings));
            }

            return(sb.ToString());
        }
        public override XmlNode ToSiteMapNode(XmlDocument context, SiteMapSettings settings)
        {
            var node = SiteMapEntityHelper.SiteMapNode(Name, Url.BuildEntityLink(EntityType, EntityID, SEName), context);

            if (!settings.ShowProducts)
            {
                return(node);
            }

            foreach (SiteMapProduct prod in Products)
            {
                node.AppendChild(prod.ToSiteMapNode(context, settings));
            }

            foreach (NestedSiteMapEntity ent in Children)
            {
                node.AppendChild(ent.ToSiteMapNode(context, settings));
            }

            return(node);
        }
        SqlCommand GetEntitySQL(string entityType, SiteMapSettings settings)
        {
            entityType = entityType.ToLowerInvariant();

            var cmdGetEntities = new SqlCommand(string.Format(RetrieveSQL, entityType));

            cmdGetEntities.Parameters.Add(
                new SqlParameter("@StoreID", DBNull.Value));

            if (settings.EntityFiltering &&
                (entityType == "category" ||
                 entityType == "manufacturer" ||
                 entityType == "section" ||
                 entityType == "vector" ||
                 entityType == "genre" ||
                 entityType == "distributor"))
            {
                cmdGetEntities.Parameters["@StoreID"].Value = AppLogic.StoreID();
            }

            return(cmdGetEntities);
        }
Esempio n. 9
0
 public NestedSiteMapEntityHelper(UrlHelper url, SiteMapEntityHelper siteMapEntityHelper, SiteMapSettings settings)
 {
     Url = url;
     SiteMapEntityHelper = siteMapEntityHelper;
     Settings            = settings;
 }
Esempio n. 10
0
 public SiteMapFeedController()
 {
     Settings                  = new SiteMapSettings();
     SiteMapEntityHelper       = new SiteMapEntityHelper(Url, Settings);
     NestedSiteMapEntityHelper = new NestedSiteMapEntityHelper(Url, SiteMapEntityHelper, Settings);
 }
Esempio n. 11
0
 public SiteMapEntityHelper(UrlHelper url, SiteMapSettings settings)
 {
     Url      = url;
     Settings = settings;
 }
        public string GetEntitySiteMap(string entityType, SiteMapSettings settings)
        {
            var entityMap = NestedSiteMapEntityHelper.GetEntities(entityType, settings);

            return(SiteMapNodes(entityMap));
        }
 public virtual XmlNode ToSiteMapNode(XmlDocument context, SiteMapSettings settings)
 {
     return(SiteMapEntityHelper.SiteMapNode(Name, Url.BuildEntityLink(EntityType, EntityID, SEName), context));
 }