private void AddOrUpdate(IEnumerable <MenuDefinition> definitions) { foreach (MenuDefinition definition in definitions) { Menu menu = _menuRepository.FirstOrDefault(t => t.Name == definition.Name); menu = menu ?? new Menu(); menu.DisplayName = definition.DisplayName; menu.MetaData = definition.MetaData; menu.Icon = definition.Icon; menu.Url = definition.Url; menu.ParentId = definition.ParentId; menu.Name = definition.Name; menu.IsStatic = true; if (menu.Id == default(int)) { var defaultactive = _settingManager.GetSettingValueForApplication <bool>(YtSettings.General.MenuDefaultActive); menu.IsActive = defaultactive; _levelEntityHandler.Create(menu); } else { if (menu.ParentId == definition.ParentId) { _levelEntityHandler.Update(menu); } else { _levelEntityHandler.UpdateParent(menu); } } //插入子集 if (!definition.Childs.Any()) { continue; } foreach (var t in definition.Childs) { t.ParentId = menu.Id; } AddOrUpdate(definition.Childs); } }
private void AddOrUpdate(IEnumerable <PermissionDefinition> definitions) { foreach (var definition in definitions) { var menu = _permissionRepository.FirstOrDefault(t => t.Name == definition.Name); menu = menu ?? new YtPermission(); menu.DisplayName = definition.DisplayName; menu.Name = definition.Name; menu.ParentId = definition.ParentId; menu.Name = definition.Name; menu.PermissionType = definition.PermissionType; menu.IsStatic = true; if (menu.Id == default(int)) { var defaultactive = _settingManager.GetSettingValueForApplication <bool>(YtSettings.General.PermissionDefaultActive); menu.IsActive = defaultactive; _levelEntityHandler.Create(menu); } else { if (menu.ParentId == definition.ParentId) { _levelEntityHandler.Update(menu); } else { _levelEntityHandler.UpdateParent(menu); } } //插入子集 if (!definition.Children.Any()) { continue; } foreach (var t in definition.Children) { t.ParentId = menu.Id; } AddOrUpdate(definition.Children); } }