WIP
This commit is contained in:
parent
54b057886c
commit
7fc1ae0650
204 changed files with 4345 additions and 134 deletions
187
PlanTempus.Application/Features/Menu/Services/MockMenuService.cs
Normal file
187
PlanTempus.Application/Features/Menu/Services/MockMenuService.cs
Normal file
|
|
@ -0,0 +1,187 @@
|
|||
using PlanTempus.Application.Features.Localization.Services;
|
||||
using PlanTempus.Application.Features.Menu.Models;
|
||||
|
||||
namespace PlanTempus.Application.Features.Menu.Services;
|
||||
|
||||
/// <summary>
|
||||
/// Mock implementation of IMenuService with hardcoded menu data.
|
||||
/// </summary>
|
||||
public class MockMenuService : IMenuService
|
||||
{
|
||||
private readonly ILocalizationService _localize;
|
||||
|
||||
public MockMenuService(ILocalizationService localize)
|
||||
{
|
||||
_localize = localize;
|
||||
}
|
||||
|
||||
public List<MenuGroup> GetMenuForRole(UserRole role, string? currentUrl = null)
|
||||
{
|
||||
var allGroups = GetAllMenuGroups();
|
||||
|
||||
return allGroups
|
||||
.Select(g => new MenuGroup
|
||||
{
|
||||
Id = g.Id,
|
||||
Label = _localize.Get($"groups.{g.Id}"),
|
||||
SortOrder = g.SortOrder,
|
||||
Items = g.Items
|
||||
.Where(i => role >= i.MinimumRole)
|
||||
.Select(i => new MenuItem
|
||||
{
|
||||
Id = i.Id,
|
||||
Label = _localize.Get($"menu.{i.Id}"),
|
||||
Icon = i.Icon,
|
||||
Url = i.Url,
|
||||
MinimumRole = i.MinimumRole,
|
||||
SortOrder = i.SortOrder,
|
||||
IsActive = currentUrl != null && i.Url.Equals(currentUrl, StringComparison.OrdinalIgnoreCase)
|
||||
})
|
||||
.OrderBy(i => i.SortOrder)
|
||||
.ToList()
|
||||
})
|
||||
.Where(g => g.Items.Any())
|
||||
.OrderBy(g => g.SortOrder)
|
||||
.ToList();
|
||||
}
|
||||
|
||||
private static List<MenuGroup> GetAllMenuGroups()
|
||||
{
|
||||
return new List<MenuGroup>
|
||||
{
|
||||
// DASHBOARD GROUP
|
||||
new MenuGroup
|
||||
{
|
||||
Id = "dashboard",
|
||||
Label = "Dashboard",
|
||||
SortOrder = 1,
|
||||
Items = new List<MenuItem>
|
||||
{
|
||||
new MenuItem
|
||||
{
|
||||
Id = "home",
|
||||
Label = "Dashboard",
|
||||
Icon = "ph-squares-four",
|
||||
Url = "/",
|
||||
MinimumRole = UserRole.Staff,
|
||||
SortOrder = 1
|
||||
},
|
||||
new MenuItem
|
||||
{
|
||||
Id = "calendar",
|
||||
Label = "Kalender",
|
||||
Icon = "ph-calendar",
|
||||
Url = "/poc-calendar.html",
|
||||
MinimumRole = UserRole.Staff,
|
||||
SortOrder = 2
|
||||
},
|
||||
new MenuItem
|
||||
{
|
||||
Id = "pos",
|
||||
Label = "Kasse",
|
||||
Icon = "ph-device-mobile",
|
||||
Url = "/pos",
|
||||
MinimumRole = UserRole.Staff,
|
||||
SortOrder = 3
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
// DATA GROUP
|
||||
new MenuGroup
|
||||
{
|
||||
Id = "data",
|
||||
Label = "Data",
|
||||
SortOrder = 2,
|
||||
Items = new List<MenuItem>
|
||||
{
|
||||
new MenuItem
|
||||
{
|
||||
Id = "products",
|
||||
Label = "Produkter & Lager",
|
||||
Icon = "ph-package",
|
||||
Url = "/poc-produkter.html",
|
||||
MinimumRole = UserRole.Manager,
|
||||
SortOrder = 1
|
||||
},
|
||||
new MenuItem
|
||||
{
|
||||
Id = "suppliers",
|
||||
Label = "Leverandører",
|
||||
Icon = "ph-truck",
|
||||
Url = "/poc-leverandoerer.html",
|
||||
MinimumRole = UserRole.Manager,
|
||||
SortOrder = 2
|
||||
},
|
||||
new MenuItem
|
||||
{
|
||||
Id = "customers",
|
||||
Label = "Kunder",
|
||||
Icon = "ph-users",
|
||||
Url = "/customers",
|
||||
MinimumRole = UserRole.Staff,
|
||||
SortOrder = 3
|
||||
},
|
||||
new MenuItem
|
||||
{
|
||||
Id = "employees",
|
||||
Label = "Medarbejdere",
|
||||
Icon = "ph-user",
|
||||
Url = "/poc-medarbejdere.html",
|
||||
MinimumRole = UserRole.Manager,
|
||||
SortOrder = 4
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
// ANALYSE GROUP
|
||||
new MenuGroup
|
||||
{
|
||||
Id = "analytics",
|
||||
Label = "Analyse",
|
||||
SortOrder = 3,
|
||||
Items = new List<MenuItem>
|
||||
{
|
||||
new MenuItem
|
||||
{
|
||||
Id = "reports",
|
||||
Label = "Statistik & Rapporter",
|
||||
Icon = "ph-chart-bar",
|
||||
Url = "/reports",
|
||||
MinimumRole = UserRole.Manager,
|
||||
SortOrder = 1
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
// SYSTEM GROUP
|
||||
new MenuGroup
|
||||
{
|
||||
Id = "system",
|
||||
Label = "System",
|
||||
SortOrder = 4,
|
||||
Items = new List<MenuItem>
|
||||
{
|
||||
new MenuItem
|
||||
{
|
||||
Id = "settings",
|
||||
Label = "Indstillinger",
|
||||
Icon = "ph-gear",
|
||||
Url = "/poc-indstillinger.html",
|
||||
MinimumRole = UserRole.Admin,
|
||||
SortOrder = 1
|
||||
},
|
||||
new MenuItem
|
||||
{
|
||||
Id = "account",
|
||||
Label = "Abonnement & Konto",
|
||||
Icon = "ph-credit-card",
|
||||
Url = "/poc-konto.html",
|
||||
MinimumRole = UserRole.Admin,
|
||||
SortOrder = 2
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue