예제 #1
0
        public object GetMenuPermission(object[] data)
        {
            vmApplicationTokenModel menu = JsonConvert.DeserializeObject <vmApplicationTokenModel>(data[0].ToString());
            string menuPath = menu.MenuPath;
            var    menuist  = objService.GetMenuPermission(menu);

            return(menuist);
        }
예제 #2
0
        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);
        }