Пример #1
0
        /// <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);
        }
Пример #2
0
        /// <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
            });
        }