Example #1
0
        /// <summary>
        /// When a nav is updated / deleted, menus may need to remove the <see cref="Nav"/>.
        /// </summary>
        /// <param name="navId"></param>
        /// <param name="navType"></param>
        private async Task HandleMenusAsync(int navId, ENavType navType)
        {
            var menuMetas = await metaRepository.GetListAsync(EMetaType.Menu);

            foreach (var meta in menuMetas) // List<Meta>
            {
                var navList = JsonConvert.DeserializeObject <IList <Nav> >(meta.Value);

                foreach (var nav in navList)
                {
                    // if the menu contains the deleted nav, remove it
                    if (nav.Id == navId && nav.Type == navType)
                    {
                        navList.Remove(nav);

                        // if menu got nav removed, update it
                        meta.Value = JsonConvert.SerializeObject(navList);
                        await metaRepository.UpdateAsync(meta);

                        // invalidate the menu cache
                        await InvalidateMenuCacheAsync(meta.Key);

                        // once removed break out
                        break;
                    }
                }
            }
        }
Example #2
0
        public async Task SetNavAsHome(int navId, ENavType navType)
        {
            var coreSettings = await settingService.GetSettingsAsync <CoreSettings>();

            coreSettings.Home.Id   = navId;
            coreSettings.Home.Type = navType;
            await settingService.UpsertSettingsAsync(coreSettings);
        }
Example #3
0
        /// <summary>
        /// When a nav is updated / deleted, site home may need to be updated by setting blog app
        /// as home.
        /// </summary>
        /// <returns></returns>
        private async Task HandleHomeAsync(int navId, ENavType navType)
        {
            var coreSettings = await settingService.GetSettingsAsync <CoreSettings>();

            if (coreSettings.Home.Id == navId && coreSettings.Home.Type == navType)
            {
                coreSettings.Home.Id   = App.BLOG_APP_ID;
                coreSettings.Home.Type = ENavType.App;
                await settingService.UpsertSettingsAsync(coreSettings);
            }
        }
Example #4
0
 public bool CanProvideNav(ENavType type) => type == ENavType.BlogCategory;
Example #5
0
 public bool CanProvideNav(ENavType type) => type == ENavType.Page;