private void InvalidateContainerCaches(ContentContextBase context)
 {
     var stereotype = context.ContentItem.GetStereotype();
     if (string.Equals(stereotype, "Widget", StringComparison.InvariantCultureIgnoreCase)) 
     {
         InvalidateLayerCaches(CachedLayerRetrievalService.WidgetContainersCacheKey);
     }
 }
        private void EnforceResourceSharingOffOnDefault(ContentContextBase context)
        {
            if (context.ContentItem.Id != 1) return;

            var settingsPart = context.ContentItem.As<CombinatorSettingsPart>();

            if (_shellSettings.Name == ShellSettings.DefaultName && settingsPart.EnableResourceSharing)
            {
                settingsPart.EnableResourceSharing = false;
            }
        }
        public void UpdateStorage(ContentContextBase context, PackageVersionPart part) {
            var version = SemVersion.Parse(part.Version);
            part.Record.VersionMajor = version.Major;
            part.Record.VersionMinor = version.Minor;
            part.Record.VersionPatch = version.Patch;

            // Update package information
            var container = part.CommonPart.Container.As<PackagePart>();
            if (container != null) {
                part.Record.PackageVersionId = container.PackageId.ToLowerInvariant() + "/" + part.Version;

                if (String.IsNullOrEmpty(container.LatestVersion) || SemVersion.Parse(container.LatestVersion) < version) {
                    container.LatestVersionUtc = part.CommonPart.ModifiedUtc.Value;
                    container.LatestVersion = part.Version;
                }
            }
        }
        private void InvalidateCachesAfteMenuItemChanges(ContentContextBase context)
        {
            if (_recipeIsExecuting)
                return;

            var stereotype = context.ContentItem.GetStereotype();

            if (string.Equals(stereotype, "MenuItem", StringComparison.InvariantCultureIgnoreCase))
            {
                var menuItemId = context.ContentItem.Id;

                //get all menu ids
                var allMenuIds = _contentManager.Query("Menu").List().Select(ci => ci.Id);
                var relevantMenuIds = new List<int>();

                //foreach menu id, check to see if the menu contains this menu part
                foreach (var menuId in allMenuIds)
                {
                    if (_menuService.GetMenuParts(menuId).Select(p => p.Id).Contains(menuItemId))
                    {
                        relevantMenuIds.Add(menuId);
                    }
                }

                //if so, get all menu widgets that use this menu and invalidate cache
                foreach (var menuId in relevantMenuIds)
                {
                    var scopedMenuId = menuId;
                    var menuWidgets = _contentManager
                        .Query<MenuWidgetPart>(GetMenuWidgetContentTypes())
                        .List()
                        .Where(p => p.MenuContentItemId == scopedMenuId);

                    _outputCachedPartsService.InvalidateCachedOutput(menuWidgets);
                }
            }
        }
        void ModifiedHandler(ContentContextBase context, ResourceFormPart part)
        {

        }
 private void TriggerIfGraph(ContentContextBase context)
 {
     if (context.ContentType != "AssociativyGraph") return;
     _cacheService.Remove(CacheKey);
 }
 private void EmptyCache(ContentContextBase ctx, UrlPermissionPart part)
 {
     _signals.Trigger(Signals.UrlPatternsSignal);
 }
 void RemoveIndexingTask(ContentContextBase context, ContentPart part) {
     _indexingTaskManager.CreateDeleteIndexTask(context.ContentItem);
 }
 void CreateIndexingTask(ContentContextBase context, ContentPart part) {
     _indexingTaskManager.CreateUpdateIndexTask(context.ContentItem);
 }
 void ModifiedHandler(ContentContextBase context, LdapDirectoryPart part)
 {
     if (context.ContentItem.ContentType == "LdapDirectory")
         ldapDirectoryCache.Invalidate();
 }