|
@ -66,20 +66,22 @@ public class UserMenuAppService : |
|
|
[HttpGet("web-menu/{userId}")] |
|
|
[HttpGet("web-menu/{userId}")] |
|
|
public virtual async Task<List<MenuDto>> GetWebMenusOfUserAsync(Guid? userId) |
|
|
public virtual async Task<List<MenuDto>> GetWebMenusOfUserAsync(Guid? userId) |
|
|
{ |
|
|
{ |
|
|
|
|
|
//var permissions = await GetPermissionsAsync(userId.Value).ConfigureAwait(false);
|
|
|
|
|
|
|
|
|
var permissions = await GetPermissionsAsync(userId.Value).ConfigureAwait(false); |
|
|
//var menus = await _menuRepository
|
|
|
|
|
|
// .GetListAsync(p => (permissions.Contains(p.Permission) || p.Permission == "skip")
|
|
|
|
|
|
// && p.Portal == WEB_PORTAL
|
|
|
|
|
|
// && p.Status == MenuStatus.Enable).ConfigureAwait(false);
|
|
|
|
|
|
//var dtos = ObjectMapper.Map<List<Menu>, List<MenuDto>>(menus);
|
|
|
|
|
|
var userMenus = await _repository |
|
|
|
|
|
.GetListAsync(p => p.UserId == userId); |
|
|
|
|
|
|
|
|
|
|
|
userMenus = userMenus.Where(p => (int)p.Portal == (int)EnumPortal.Web).ToList(); |
|
|
|
|
|
|
|
|
var menus = await _menuRepository |
|
|
var menuCodes = userMenus.Select(p => p.MenuCode).Distinct().ToList(); |
|
|
.GetListAsync(p => (permissions.Contains(p.Permission) || p.Permission == "skip") |
|
|
var menus = await GetListByPortalAndCodesAsync(WEB_PORTAL, menuCodes); |
|
|
&& p.Portal == WEB_PORTAL |
|
|
|
|
|
&& p.Status == MenuStatus.Enable).ConfigureAwait(false); |
|
|
|
|
|
var dtos = ObjectMapper.Map<List<Menu>, List<MenuDto>>(menus); |
|
|
|
|
|
// var userMenus = await _repository
|
|
|
|
|
|
// .GetListAsync(p => p.UserId == userId && p.Portal == WEB_PORTAL);
|
|
|
|
|
|
// var menuCodes = userMenus.Select(p => p.MenuCode).Distinct().ToList();
|
|
|
|
|
|
// var menus = await GetListByPortalAndCodesAsync(WEB_PORTAL, menuCodes);
|
|
|
|
|
|
|
|
|
|
|
|
var result = BuildMenuTree(dtos); |
|
|
var result = BuildMenuTree(menus); |
|
|
|
|
|
|
|
|
return result; |
|
|
return result; |
|
|
} |
|
|
} |
|
@ -135,9 +137,9 @@ public class UserMenuAppService : |
|
|
private async Task<List<MenuDto>> GetListByPortalAndCodesAsync(EnumPortal portal, List<string> menuCodes) |
|
|
private async Task<List<MenuDto>> GetListByPortalAndCodesAsync(EnumPortal portal, List<string> menuCodes) |
|
|
{ |
|
|
{ |
|
|
var entities = await _menuRepository |
|
|
var entities = await _menuRepository |
|
|
.GetListAsync(p => menuCodes.Contains(p.Code) |
|
|
.GetListAsync(p => menuCodes.Contains(p.Code)); |
|
|
&& p.Portal == portal |
|
|
|
|
|
&& p.Status == MenuStatus.Enable).ConfigureAwait(false); |
|
|
entities = entities.Where(p => p.Status == MenuStatus.Enable && p.Portal == EnumPortal.Web).ToList(); |
|
|
|
|
|
|
|
|
return ObjectMapper.Map<List<Menu>, List<MenuDto>>(entities); |
|
|
return ObjectMapper.Map<List<Menu>, List<MenuDto>>(entities); |
|
|
} |
|
|
} |
|
|