Files
2024-07-05 21:36:15 +03:30

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();
}
}