using Easy.AuthorityManagement.Clean.Contracts.Inputs; using Easy.AuthorityManagement.Clean.Contracts.Models; using Easy.AuthorityManagement.Clean.Domain.Entities; using Easy.AuthorityManagement.Clean.Shared.IServices; using Easy.AuthorityManagement.Clean.Shared.Modles; namespace Easy.AuthorityManagement.Clean.Application; public class IdentityRoleAppService : ApiService { protected IRepository IdentityRoleRepository => LazyServiceProvider.LazyGetService>(); protected IRepository PermissionGrantRepository => LazyServiceProvider.LazyGetService>(); protected IPermissionGrantManager PermissionGrantManager => LazyServiceProvider.LazyGetService(); protected IMapper Mapper => LazyServiceProvider.LazyGetService(); protected IIdentityRoleManager IdentityRoleManager => LazyServiceProvider.LazyGetService(); public virtual async Task> CreateAsync(IdentityRoleCreateInput input) { var identityRole = await IdentityRoleManager.CreateAsync(input.RoleName, input.TenantId); Mapper.Map(input, identityRole); await IdentityRoleRepository.Set.AddAsync(identityRole); await IdentityRoleRepository.SaveChangesAsync(); var value = Mapper.Map(identityRole); return ApiResult.ValueSuccess(value); } public virtual async Task DeleteAsync(long id) { var tenant = await IdentityRoleRepository.Set.FirstOrDefaultAsync(o => o.Id == id); if (tenant != null) { IdentityRoleRepository.Set.Remove(tenant); await IdentityRoleRepository.SaveChangesAsync(); } return ApiResult.Success(); } public virtual async Task> UpdateAsync(long id, IdentityRoleUpdateInput input) { var tenant = await IdentityRoleRepository.Set.FirstOrDefaultAsync(o => o.Id == id); When.Is(tenant == null, "此租户不存在"); await IdentityRoleManager.ChangeNameAsync(tenant, input.RoleName); Mapper.Map(input, tenant); IdentityRoleRepository.Set.Update(tenant); await IdentityRoleRepository.SaveChangesAsync(); var value = Mapper.Map(tenant); return ApiResult.ValueSuccess(value); } /// /// 获得角色 /// public virtual async Task> GetAsync(long id) { var tenant = await IdentityRoleRepository.Set.FirstOrDefaultAsync(o => o.Id == id); var value = Mapper.Map(tenant); return ApiResult.ValueSuccess(value); } public async Task> GetListAsync(GetIdentityRolesInput input) { var tenants = await IdentityRoleRepository.Set.ApplyPaging(input.PageIndex, input.PageSize).ToListAsync(); var paged = Paged.Create(await IdentityRoleRepository.Set.CountAsync(), input); var valuePaged = Mapper.Map>(tenants); return ApiResult.ValuesPagedSuccess(paged, valuePaged); } /// /// 获得许可信息 /// public virtual async Task> GetPermissionGrantsAsync(long id) { return ApiResult.Values(await PermissionGrantManager.GetPermissionGrantsAsync("R", id)); } }