From 56d3b754d99b20a95b23612c3c56932e3b438c85 Mon Sep 17 00:00:00 2001 From: pramod mahajan Date: Fri, 1 Aug 2025 14:50:00 +0530 Subject: [PATCH] side bar Menu Model define --- Marco.Pms.CacheHelper/SidebarMenu.cs | 14 ++++ Marco.Pms.Model/AppMenu/SideBarMenu.cs | 46 ++++++++++++ .../Controllers/AppMenuController.cs | 72 +++++++++++++++++++ 3 files changed, 132 insertions(+) create mode 100644 Marco.Pms.CacheHelper/SidebarMenu.cs create mode 100644 Marco.Pms.Model/AppMenu/SideBarMenu.cs create mode 100644 Marco.Pms.Services/Controllers/AppMenuController.cs diff --git a/Marco.Pms.CacheHelper/SidebarMenu.cs b/Marco.Pms.CacheHelper/SidebarMenu.cs new file mode 100644 index 0000000..31196b4 --- /dev/null +++ b/Marco.Pms.CacheHelper/SidebarMenu.cs @@ -0,0 +1,14 @@ +using Marco.Pms.Model.AppMenu; +using MongoDB.Driver; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Marco.Pms.CacheHelper +{ + + private readonly IMongoCollection? _collection; + +} diff --git a/Marco.Pms.Model/AppMenu/SideBarMenu.cs b/Marco.Pms.Model/AppMenu/SideBarMenu.cs new file mode 100644 index 0000000..8228cba --- /dev/null +++ b/Marco.Pms.Model/AppMenu/SideBarMenu.cs @@ -0,0 +1,46 @@ + +using MongoDB.Bson; +using MongoDB.Bson.Serialization.Attributes; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Marco.Pms.Model.AppMenu +{ + public class MenuSection + { + [BsonId] + [BsonRepresentation(BsonType.String)] + public Guid Id { get; set; } = Guid.NewGuid(); + public string? Header { get; set; } + public string? Title { get; set; } + public List Items { get; set; } = new List(); + } + + public class MenuItem + { + [BsonId] + [BsonRepresentation(BsonType.String)] + public Guid Id { get; set; } = Guid.NewGuid(); + public string? Text { get; set; } + public string? Icon { get; set; } + public bool? Available { get; set; } + public string? Link { get; set; } + public List Submenu { get; set; } + } + + public class SubMenuItem + { + + [BsonId] + [BsonRepresentation(BsonType.String)] + public Guid Id { get; set; } = Guid.NewGuid(); + public string Text { get; set; } + public bool Available { get; set; } + public string Link { get; set; } + public string permissionKey { get; set; } + + } +} diff --git a/Marco.Pms.Services/Controllers/AppMenuController.cs b/Marco.Pms.Services/Controllers/AppMenuController.cs new file mode 100644 index 0000000..f84762a --- /dev/null +++ b/Marco.Pms.Services/Controllers/AppMenuController.cs @@ -0,0 +1,72 @@ +using Marco.Pms.Model.AppMenu; +using Marco.Pms.Model.Employees; +using Marco.Pms.Model.Entitlements; +using Marco.Pms.Services.Service; +using Marco.Pms.Services.Service.ServiceInterfaces; +using MarcoBMS.Services.Helpers; +using Microsoft.AspNetCore.Http.HttpResults; +using Microsoft.AspNetCore.Mvc; +using System.Threading.Tasks; + +namespace Marco.Pms.Services.Controllers +{ + public class AppMenuController + { + + private readonly UserHelper _userHelper; + private readonly EmployeeHelper _employeeHelper; + private readonly RolesHelper _rolesHelper; + + public AppMenuController(EmployeeHelper employeeHelper, IProjectServices projectServices, UserHelper userHelper, RolesHelper rolesHelper) { + + _userHelper = userHelper; + _employeeHelper = employeeHelper; + _rolesHelper = rolesHelper; + } + + + [HttpGet("/appMenu")] + + public async Task getAppSideBarMenu() + { + return Ok(); + } + + + [HttpPost("/create/appsidebar")] + public async Task PostAppSideBarMenu([FromForm] MenuSection sidebarmenu) + { + var user = await _userHelper.GetCurrentEmployeeAsync(); + Employee? loginUser = null; + + if (user != null) + { + loginUser = await _employeeHelper.GetEmployeeByApplicationUserID(user.Id.ToString()); + + + List featurePermission = await _rolesHelper.GetFeaturePermissionByEmployeeId(loginUser.Id); + string[] projectsId = []; + + + + + return Ok(loginUser); + } + + } + + + + + + + + + + + + + } + + +}