public object GetMenuPermission(object[] data) { vmApplicationTokenModel menu = JsonConvert.DeserializeObject <vmApplicationTokenModel>(data[0].ToString()); string menuPath = menu.MenuPath; var menuist = objService.GetMenuPermission(menu); return(menuist); }
public object GetMenuPermission(vmApplicationTokenModel model) { int loggedUser = model.loggedUserID, companyID = model.loggedCompanyID; String moduleName = string.Empty; string[] parts = model.MenuPath.Split(new char[] { '/' }); if (parts.Length > 2) { moduleName = parts[1]; } ERP_Entities dbContext = new ERP_Entities(); var usergroupID = dbContext.CmnUsers.Where(x => x.UserID == loggedUser).FirstOrDefault().UserGroupID; var dba = ( from tb in dbContext.CmnMenus join permission in dbContext.CmnMenuPermissions on tb.MenuID equals permission.MenuID // where tb.CompanyID == companyID && where permission.CompanyID == companyID && (tb.ParentID == 0 || tb.ParentID == null) && (permission.UserID == loggedUser) && tb.MenuPath.Contains(moduleName) select new { MenuID = tb.MenuID, ParentID = tb.ParentID ?? 0, Sequencea = tb.Sequence, MenuName = tb.MenuName.ToLower(), MenuPath = tb.MenuPath, ReportName = tb.ReportName ?? "c", MenuIconCss = tb.MenuIconCss, tb.ModuleID, permission.EnableView, permission.EnableInsert, permission.EnableUpdate, permission.EnableDelete, ChildMenues = ( from master in dbContext.CmnMenus join details in dbContext.CmnMenus on master.MenuID equals details.ParentID into leftGroup from lg in leftGroup.DefaultIfEmpty() where lg.MenuName != null && tb.MenuID == lg.ParentID join permissions in dbContext.CmnMenuPermissions on lg.MenuID equals permissions.MenuID join tran in dbContext.CmnTransactionTypes.Where(x => x.IsActive == true && x.CompanyID == tb.CompanyID) on lg.MenuID equals tran.MenuID into leftTranGroup from ltg in leftTranGroup.DefaultIfEmpty() join userJobContract in dbContext.CmnUserJobContracts.Where(x => x.IsActive == true && x.CompanyID == tb.CompanyID) on loggedUser equals userJobContract.UserID into bgroup from blj in bgroup.DefaultIfEmpty() where lg.IsDeleted == false where lg.MenuName != null && tb.MenuID == lg.ParentID && permissions.EnableView == true && (permissions.UserID == loggedUser || permissions.UserGroupID == usergroupID) && permissions.CompanyID == companyID //&& lg.MenuPath.Contains(model.MenuPath) && lg.MenuPath == model.MenuPath select new { lg.MenuID, lg.ParentID, lg.MenuName, lg.MenuPath, lg.MenuIconCss, lg.ModuleID, lg.Sequence, permissions.EnableView, permissions.EnableInsert, permissions.EnableUpdate, permissions.EnableDelete, TransactionTypeID = (int?)ltg.TransactionTypeID, TransactionTypeName = ltg.TransactionTypeName, DepartmentID = blj.DepartmentID }).Distinct().OrderBy(x => x.Sequence) }).ToList().OrderBy(x => x.Sequencea); return(dba); }