src/EasyFrameWork/Modules/Role/RoleService.cs

(开头部分) 5KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

/* http://www.zkea.net/ Copyright 2016 ZKEASOFT http://www.zkea.net/licenses */
using Easy.Extend;
using Easy.RepositoryPattern;
using System.Linq;
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using Easy.Constant;
using System.Linq.Expressions;

namespace Easy.Modules.Role
{
    public class RoleService : ServiceBase<RoleEntity, EasyDbContext>, IRoleService
    {
        private readonly IPermissionService _permissionService;
        private readonly IUserRoleRelationService _userRoleRelationService;
        public RoleService(IPermissionService permissionService,
            IUserRoleRelationService userRoleRelationService,
            IApplicationContext applicationContext,
            EasyDbContext easyDbContext)
            : base(applicationContext, easyDbContext)
        {
            _permissionService = permissionService;
            _userRoleRelationService = userRoleRelationService;
        }

        public override DbSet<RoleEntity> CurrentDbSet
        {
            get
            {
                return DbContext.Roles;
            }
        }

        public ServiceResult<RoleEntity> Add(RoleEntity roleEntity, List<PermissionDescriptor> permissionDescriptors)
        {
            return BeginTransaction(() =>
            {
                var result = Add(roleEntity);
                if (result.HasViolation) return result;
                var permissions = new List<Permission>();
                permissionDescriptors.Where(m => m.Checked ?? false).Each(m =>
                {
                    permissions.Add(new Permission
                    {
                        RoleId = roleEntity.ID,
                        PermissionKey = m.Key,
                        Module = m.Module,
                        Title = m.Title,
                        ActionType = ActionType.Create
                    });
                });
                _permissionService.AddRange(permissions.ToArray());
                return result;
            });
        }

        public IList<Permission> GetPermission(int roleId)
        {
            return _permissionService.Get(m => m.RoleId == roleId);
后面还有 87 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。