simrsCore/Views/Shared/_MainLeftMenu.cshtml
2025-12-08 00:09:09 +07:00

128 lines
6.8 KiB
Plaintext

@using Microsoft.EntityFrameworkCore
@using simrs.Models.simrs;
@using System.Data;
@inject simrscontext db
@{
var getUserId = User.Identity?.Name;
var getPrivilegesMenu = db.bil_privileges.Include(t => t.bil_priv_menu_kdNavigation.bil_kelompok_menu_kdNavigation).Where(t => t.bil_login_kd == getUserId && t.bil_privileges_flag == "1" && t.bil_priv_menu_kdNavigation.bil_priv_menu_sh_link == true).OrderBy(t => t.bil_priv_menu_kd);
var getParentMenu = db.bil_kelompok_menu.Include(t => t.bil_priv_menu);
List<string> listParent = new List<string>();
if (getPrivilegesMenu.Count() > 0)
{
foreach (var item in getPrivilegesMenu.GroupBy(t => t.bil_priv_menu_kdNavigation.bil_kelompok_menu_kd))
{
listParent.Add(item.Key);
}
}
string pathURL = Context.Request.Path;
string paretActive = db.bil_priv_menu.Where(t => t.bil_priv_menu_link.Trim() == pathURL.Trim()).Select(t => t.bil_kelompok_menu_kd).FirstOrDefault();
}
<aside id="sidebar" class="sidebar">
<ul class="sidebar-nav" id="sidebar-nav">
@{
if (getPrivilegesMenu.Where(t => t.bil_privileges_dashboard == "1").Count() > 0)
{
<li class="nav-item">
<a class="nav-link collapsed" href="@getPrivilegesMenu.Where(t => t.bil_privileges_dashboard == "1").FirstOrDefault().bil_priv_menu_kdNavigation.bil_priv_menu_link">
<i class="bi bi-grid"></i>
<span>Dashboard</span>
</a>
</li>
<!-- End Dashboard Nav -->
}
foreach (var item in listParent)
{
var ParentInfo = db.bil_kelompok_menu.Where(t => t.bil_kelompok_menu_kd == item);
if (item == paretActive)
{
<li class="nav-item">
<a class="nav-link collapsed" data-bs-target="#@item" data-bs-toggle="collapse" href="#">
<span> <i class="@ParentInfo.Select(t => t.bil_kelompok_menu_icon).FirstOrDefault()"></i> @ParentInfo.Select(t => t.bil_kelompok_menu_nm).FirstOrDefault()</span><i class="bi bi-chevron-down ms-auto"></i>
</a>
<ul id="@item" class="nav-content collapse show" data-bs-parent="#sidebar-nav" style="list-style-type: none;">
@{
foreach (var menu in getPrivilegesMenu.Where(t => t.bil_priv_menu_kdNavigation.bil_kelompok_menu_kd == item))
{
var classicon = "bi bi-circle";
var iconsize = "";
if (menu.bil_priv_menu_kdNavigation.bil_priv_menu_link == (pathURL))
{
if (!string.IsNullOrEmpty(menu.bil_priv_menu_kdNavigation.bil_priv_menu_icon))
{
classicon = menu.bil_priv_menu_kdNavigation.bil_priv_menu_icon;
iconsize = "1rem !important";
}
<li>
<a href="@menu.bil_priv_menu_kdNavigation.bil_priv_menu_link" class="active">
<i class="@classicon" style="font-size:@iconsize;background-color:transparent;"></i><span>@menu.bil_priv_menu_kdNavigation.bil_priv_menu_nm</span>
</a>
</li>
}
else
{
if (!string.IsNullOrEmpty(menu.bil_priv_menu_kdNavigation.bil_priv_menu_icon))
{
classicon = menu.bil_priv_menu_kdNavigation.bil_priv_menu_icon;
iconsize = "1rem !important";
}
<li>
<a href="@menu.bil_priv_menu_kdNavigation.bil_priv_menu_link">
<i class="@classicon" style="font-size:@iconsize"></i><span>@menu.bil_priv_menu_kdNavigation.bil_priv_menu_nm</span>
</a>
</li>
}
}
}
</ul>
</li>
<!-- End Icons Nav -->
}
else
{
<li class="nav-item">
<a class="nav-link collapsed" data-bs-target="#@item" data-bs-toggle="collapse" href="#">
<span> <i class="@ParentInfo.Select(t => t.bil_kelompok_menu_icon).FirstOrDefault()"></i> @ParentInfo.Select(t => t.bil_kelompok_menu_nm).FirstOrDefault()</span><i class="bi bi-chevron-down ms-auto"></i>
</a>
<ul id="@item" class="nav-content collapse " data-bs-parent="#sidebar-nav">
@{
foreach (var menu in getPrivilegesMenu.Where(t => t.bil_priv_menu_kdNavigation.bil_kelompok_menu_kd == item))
{
var classicon = "bi bi-circle";
var iconsize = "";
if (!string.IsNullOrEmpty(menu.bil_priv_menu_kdNavigation.bil_priv_menu_icon))
{
classicon = menu.bil_priv_menu_kdNavigation.bil_priv_menu_icon;
iconsize = "1rem !important";
}
<li>
<a href="@menu.bil_priv_menu_kdNavigation.bil_priv_menu_link">
<i class="@classicon" style="font-size:@iconsize"></i><span>@menu.bil_priv_menu_kdNavigation.bil_priv_menu_nm</span>
</a>
</li>
}
}
</ul>
</li>
<!-- End Icons Nav -->
}
}
<li class="nav-item">
<a class="nav-link collapsed" href="/home/logoff">
<i class="bi bi-power"></i>
<span>Sign Out</span>
</a>
</li>
}
</ul>
</aside>