/// <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; } } } }
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); }
/// <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); } }
public bool CanProvideNav(ENavType type) => type == ENavType.BlogCategory;
public bool CanProvideNav(ENavType type) => type == ENavType.Page;