Files
mws.backend.dotnet/mws.application/Roles/RolePermissionBuilder.cs
T

26 lines
786 B
C#
Raw Normal View History

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