handle error

This commit is contained in:
pramod mahajan 2025-08-18 23:31:18 +05:30
parent 3ba954ac82
commit e8c8c92120

View File

@ -134,8 +134,6 @@ namespace Marco.Pms.Services.Controllers
} }
} }
[HttpPut("sidebar/{sectionId}/items/{itemId}")] [HttpPut("sidebar/{sectionId}/items/{itemId}")]
public async Task<IActionResult> UpdateMenuItem(Guid sectionId, Guid itemId, [FromBody] MenuItemDto updatedMenuItem) public async Task<IActionResult> UpdateMenuItem(Guid sectionId, Guid itemId, [FromBody] MenuItemDto updatedMenuItem)
{ {
@ -231,73 +229,85 @@ namespace Marco.Pms.Services.Controllers
var loggedUser = await _userHelper.GetCurrentEmployeeAsync(); var loggedUser = await _userHelper.GetCurrentEmployeeAsync();
var employeeId = loggedUser.Id; var employeeId = loggedUser.Id;
var menus = await _sideBarMenuHelper.GetAllMenuSectionsAsync(); try
foreach (var menu in menus)
{ {
var allowedItems = new List<MenuItem>();
foreach (var item in menu.Items) var menus = await _sideBarMenuHelper.GetAllMenuSectionsAsync();
foreach (var menu in menus)
{ {
bool isAllowed = false; var allowedItems = new List<MenuItem>();
if (item.PermissionKeys == null || !item.PermissionKeys.Any()) foreach (var item in menu.Items)
{ {
isAllowed = true; bool isAllowed = false;
}
else if (item.PermissionKeys == null || !item.PermissionKeys.Any())
{
foreach (var pk in item.PermissionKeys)
{ {
if (Guid.TryParse(pk, out var permissionId)) isAllowed = true;
}
else
{
foreach (var pk in item.PermissionKeys)
{ {
if (await _permissions.HasPermission(permissionId,employeeId)) if (Guid.TryParse(pk, out var permissionId))
{ {
isAllowed = true; if (await _permissions.HasPermission(permissionId, employeeId))
break; {
isAllowed = true;
break;
}
} }
} }
} }
}
if (isAllowed) if (isAllowed)
{
if (item.Submenu != null && item.Submenu.Any())
{ {
var allowedSubmenus = new List<SubMenuItem>();
foreach (var sm in item.Submenu) if (item.Submenu != null && item.Submenu.Any())
{ {
if (sm.PermissionKeys == null || !sm.PermissionKeys.Any()) var allowedSubmenus = new List<SubMenuItem>();
foreach (var sm in item.Submenu)
{ {
allowedSubmenus.Add(sm); if (sm.PermissionKeys == null || !sm.PermissionKeys.Any())
}
else
{
foreach (var pk in sm.PermissionKeys)
{ {
if (Guid.TryParse(pk, out var permissionId)) allowedSubmenus.Add(sm);
}
else
{
foreach (var pk in sm.PermissionKeys)
{ {
if (await _permissions.HasPermission(permissionId,employeeId)) if (Guid.TryParse(pk, out var permissionId))
{ {
allowedSubmenus.Add(sm); if (await _permissions.HasPermission(permissionId, employeeId))
break; {
allowedSubmenus.Add(sm);
break;
}
} }
} }
} }
} }
item.Submenu = allowedSubmenus;
} }
item.Submenu = allowedSubmenus;
}
allowedItems.Add(item); allowedItems.Add(item);
}
} }
menu.Items = allowedItems;
} }
menu.Items = allowedItems; _logger.LogInfo("Fetched Sidebar Menu");
return Ok(ApiResponse<object>.SuccessResponse(menus, "SideBar Menu Fetched successfully"));
}
catch (Exception ex) {
_logger.LogError(ex, "Error Occurred while Updating Fetching Menu");
return StatusCode(500, ApiResponse<object>.ErrorResponse("Server Error", ex, 500));
} }
return Ok(menus);
} }