public async Task <MenuViewModel> GetUserMenuAsync(IPrincipal claimsPrincipal)
        {
            if (!claimsPrincipal.Identity.IsAuthenticated)
            {
                return(new MenuViewModel());
            }
            var userName = claimsPrincipal.Identity.Name;
            var user     = await _userManager.FindByNameAsync(userName);

            if (user != null)
            {
                var menuIds = new List <string>();
                foreach (var userRole in user.Roles)
                {
                    var role = await _roleManager.FindByIdAsync(userRole.RoleId);

                    var currentRolemenuIds = role.Claims.Select(x => x.ClaimValue);
                    menuIds.AddRange(currentRolemenuIds);
                }
                return(_menu.CastMenuIdsToMenuModel(menuIds.Distinct()));
            }
            return(new MenuViewModel());
        }