26 lines
786 B
C#
26 lines
786 B
C#
using Mws.Application.Permissions;
|
|||
|
|
using Mws.Domain.Roles;
|
||
|
|
|
||
|
|
namespace Mws.Application.Roles;
|
||
|
|
|
||
|
|
internal static class RolePermissionBuilder
|
||
|
|
{
|
||
|
|
public static List<RolePermission> Build(List<PermissionEntryDto> entries)
|
||
|
|
{
|
||
|
|
var byScreen = entries.Where(e => ScreenCatalog.Keys.Contains(e.Screen)).ToDictionary(e => e.Screen);
|
||
|
|
|
||
|
|
return ScreenCatalog.Keys.Select(key =>
|
||
|
|
{
|
||
|
|
byScreen.TryGetValue(key, out var entry);
|
||
|
|
return new RolePermission
|
||
|
|
{
|
||
|
|
Screen = key,
|
||
|
|
CanView = entry?.CanView ?? false,
|
||
|
|
CanCreate = entry?.CanCreate ?? false,
|
||
|
|
CanEdit = entry?.CanEdit ?? false,
|
||
|
|
CanDelete = entry?.CanDelete ?? false,
|
||
|
|
};
|
||
|
|
}).ToList();
|
||
|
|
}
|
||
|
|
}
|