public override IEnumerable <BreadcrumbRenderingModel> GetBreadcrumbItems(Item currentItem, Item rootItem)
        {
            var fakeBreadcrumb = new List <BreadcrumbRenderingModel>();

            for (int i = 0; i < 3; i++)
            {
                BreadcrumbRenderingModel fakeModel = CreateBreadcrumbModel(null, i, 2, null, $"Tag Level {i}");
                fakeBreadcrumb.Add(fakeModel);
            }

            return(fakeBreadcrumb);
        }
        public override IRenderingModelBase GetModel()
        {
            IEnumerable <BreadcrumbRenderingModel> breadcrumb;

            Item rootItem = Sitecore.Context.Database.GetItem(Rendering.Parameters[Sitecore.XA.Feature.Navigation.Constants.BreadcrumbRoot] ?? string.Empty);

            Item commerceRootItem = Sitecore.Context.Database.GetItem(_storefrontContext.CurrentStorefront.GetStartNavigationCategory());

            if ((_siteContext.IsCategory || _siteContext.IsProduct) && IsWildCardItem(Sitecore.Context.Item))
            {
                // It's a catalog item so we need to concatenate the ancestors for the catalog with the ancestors on the site itself
                // we are only doing this when using wild card item navigation, no need to concatenate when using direct catalog navigation
                breadcrumb = GetBreadcrumbItems(CurrentItem, rootItem)
                             .Concat(GetBreadcrumbItems(_siteContext.CurrentCatalogItem, commerceRootItem))
                             .Where(a => a.Item.ID != commerceRootItem.ID);
            }
            else
            {
                breadcrumb = GetBreadcrumbItems(CurrentItem, rootItem);
            }

            BreadcrumbRenderingModel model = new BreadcrumbRenderingModel
            {
                Separator = Rendering.Parameters[Sitecore.XA.Feature.Navigation.Constants.Separator]
            };

            FillBaseProperties(model);

            var breadcrumbModels = breadcrumb as BreadcrumbRenderingModel[] ?? breadcrumb.ToArray();

            if (!breadcrumbModels.Any())
            {
                var fakeNav = Enumerable.Empty <BreadcrumbRenderingModel>();
                if (Sitecore.Context.PageMode.IsExperienceEditor)
                {
                    fakeNav = new FakeBreadcrumbRepository().GetBreadcrumbItems(null, null);
                }
                model.IsFake   = true;
                model.Children = fakeNav;
            }
            else
            {
                model.Children = breadcrumbModels;
            }

            return(model);
        }