public override async Task PublishedAsync(PublishContentContext context, AutoroutePart part)
        {
            if (!String.IsNullOrWhiteSpace(part.Path))
            {
                if (part.RouteContainedItems)
                {
                    _contentManager ??= _serviceProvider.GetRequiredService <IContentManager>();
                    var containedAspect = await _contentManager.PopulateAspectAsync <ContainedContentItemsAspect>(context.PublishingItem);
                    await CheckContainedHomeRouteAsync(part.ContentItem.ContentItemId, containedAspect, context.PublishingItem.Content);
                }

                // Update entries from the index table after the session is committed.
                await _entries.UpdateEntriesAsync();
            }

            if (!String.IsNullOrWhiteSpace(part.Path) && !part.Disabled && part.SetHomepage)
            {
                await SetHomeRouteAsync(part, homeRoute =>
                {
                    homeRoute[_options.ContentItemIdKey] = context.ContentItem.ContentItemId;
                    homeRoute[_options.JsonPathKey]      = "";
                });
            }

            // Evict any dependent item from cache
            await RemoveTagAsync(part);
        }