/// <inheritdoc cref="IViewManager.SaveModuleNavigationAsync(ModuleNavigationInfo)" /> public async Task <bool> SaveModuleNavigationAsync(ModuleNavigationInfo moduleNavigation) { if (moduleNavigation is null) { return(false); } ModuleDefinitionInfo moduleDef = await GetModuleDefAsync(moduleNavigation.ModuleDefinitionId); if (moduleDef is null) { return(false); } ModuleNavigation navigation = moduleNavigation.Id > 0 ? await _dbContext.KastraModuleNavigations.SingleOrDefaultAsync(mn => mn.Id == moduleNavigation.Id) : null; navigation = moduleNavigation.ToModuleNavigation(); if (navigation.Id > 0) { _dbContext.KastraModuleNavigations.Update(navigation); } else { _dbContext.KastraModuleNavigations.Add(navigation); } await _dbContext.SaveChangesAsync(); // Clear cache _cacheEngine.ClearCacheContains("Module"); return(true); }
/// <summary> /// Convert ModuleNavigationInfo to ModuleNavigation. /// </summary> /// <param name="moduleNavigationInfo">Module navigation info</param> /// <returns>Module navigation</returns> public static ModuleNavigation ToModuleNavigation(this ModuleNavigationInfo moduleNavigationInfo) { if (moduleNavigationInfo is null) { return(null); } return(new ModuleNavigation() { Id = moduleNavigationInfo.Id, ModuleDefinitionId = moduleNavigationInfo.ModuleDefinitionId, Name = moduleNavigationInfo.Name, Type = moduleNavigationInfo.Type, Icon = moduleNavigationInfo.Icon, Url = moduleNavigationInfo.Url }); }