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}")]
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 employeeId = loggedUser.Id;
var menus = await _sideBarMenuHelper.GetAllMenuSectionsAsync();
foreach (var menu in menus)
try
{
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;
}
else
{
foreach (var pk in item.PermissionKeys)
bool isAllowed = false;
if (item.PermissionKeys == null || !item.PermissionKeys.Any())
{
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;
break;
if (await _permissions.HasPermission(permissionId, employeeId))
{
isAllowed = true;
break;
}
}
}
}
}
if (isAllowed)
{
if (item.Submenu != null && item.Submenu.Any())
if (isAllowed)
{
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);
}
else
{
foreach (var pk in sm.PermissionKeys)
if (sm.PermissionKeys == null || !sm.PermissionKeys.Any())
{
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);
break;
if (await _permissions.HasPermission(permissionId, employeeId))
{
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);
}