51 lines
1.5 KiB
C#
51 lines
1.5 KiB
C#
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<long, Role>, 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<PermissionDto> MapPermissions(IEnumerable<Permission> permissions)
|
|
{
|
|
return permissions.Select(x => new PermissionDto(x.Code, x.Name)).ToList();
|
|
}
|
|
|
|
public List<RoleViewModel> List()
|
|
{
|
|
return _accountContext.Roles.Select(x => new RoleViewModel
|
|
{
|
|
Id = x.id,
|
|
Name = x.Name,
|
|
CreationDate = x.CreationDate.ToFarsi()
|
|
}).ToList();
|
|
}
|
|
} |