/// <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 ModuleNavigation to ModuleNavigationInfo. /// </summary> /// <param name="moduleNavigation">Module navigation</param> /// <returns>Module navigation info</returns> public static ModuleNavigationInfo ToModuleNavigationInfo(this ModuleNavigation moduleNavigation) { if (moduleNavigation is null) { return(null); } return(new ModuleNavigationInfo() { Id = moduleNavigation.Id, Name = moduleNavigation.Name, Url = moduleNavigation.Url, Type = moduleNavigation.Type, Icon = moduleNavigation.Icon, ModuleDefinitionId = moduleNavigation.ModuleDefinitionId, ModuleDefinition = moduleNavigation.ModuleDefinition.ToModuleDefinitionInfo() }); }
/// <inheritdoc cref="IViewManager.DeleteModuleNavigationAsync(int)" /> public async Task <bool> DeleteModuleNavigationAsync(int moduleNavigationId) { if (moduleNavigationId < 1) { return(false); } ModuleNavigation moduleNavigation = await _dbContext.KastraModuleNavigations .SingleOrDefaultAsync(p => p.Id == moduleNavigationId); if (moduleNavigation is null) { return(false); } _dbContext.KastraModuleNavigations.Remove(moduleNavigation); await _dbContext.SaveChangesAsync(); // Clear cache _cacheEngine.ClearCacheContains("Module"); return(true); }