Example #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);
        }
Example #2
0
        /// <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()
            });
        }
Example #3
0
        /// <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);
        }