using _0_Framework.Application; using AccountManagement.Application.Contracts.Role; using AccountManagement.Domain.RoleAgg; using System.Collections.Generic; using System.Linq; using System.Xml.Linq; using _0_Framework.Infrastructure; using _0_Framework.InfraStructure; using Microsoft.EntityFrameworkCore; namespace AccountMangement.Infrastructure.EFCore.Repository; public class RoleRepository : RepositoryBase, IRoleRepository { private readonly AccountContext _accountContext; public RoleRepository(AccountContext accountContext) : base(accountContext) { _accountContext = accountContext; } public EditRole GetDetails(long id) { var role = _accountContext.Roles.Select(x => new EditRole { Id = x.id, Name = x.Name, MappedPermissions = MapPermissions(x.Permissions) }).AsNoTracking() .FirstOrDefault(x => x.Id == id); //role.Permissions = role.MappedPermissions.Select(x => x.Code).ToList(); return role; } private static List MapPermissions(IEnumerable permissions) { return permissions.Select(x => new PermissionDto(x.Code, x.Name)).ToList(); } public List List() { return _accountContext.Roles.Select(x => new RoleViewModel { Id = x.id, Name = x.Name, CreationDate = x.CreationDate.ToFarsi() }).ToList(); } }