//[ActAuthorize(MenuEnum.AdministrativeUnits)]
        public ActionResult Index(int unitId, EnterpriseUnitsTypeEnum type)
        {
            ViewBag.Title   = Resources.PageTitle.UserUnit;
            ViewBag.PageBar = GetPageBar(Resources.PageTitle.UserUnit);
            var unitInfo = _enterpriseUnitService.GetById(unitId);

            var userNotAddedList = _unitUserService.GetNonUnitUser(unitId, CurrentUser.LevelResponsibleForMe, type)
                                   .Select(x => new SelectListItem()
            {
                Text  = x.FullName,
                Value = x.UserId.ToString()
            });
            var userAddedList = _unitUserService.GetUnitUserAdded(unitId)
                                .Select(x => new SelectListItem()
            {
                Text  = x.FullName,
                Value = x.UserId.ToString()
            });
            var rsponsibleUserList = _unitUserService.GetResponsibleUser(unitId)
                                     .Select(x => new SelectListItem()
            {
                Text  = x.FullName,
                Value = x.UserId.ToString()
            });

            var model = new UnitUserViewModel();

            model.UnitId              = unitInfo.Id;
            model.UnitName            = unitInfo.Name;
            model.type                = type;
            model.UserNotAddedList    = userNotAddedList;
            model.UserAddedList       = userAddedList;
            model.UserResponsibleList = rsponsibleUserList;
            return(View(model));
        }
        public int GetCountUserForLevel(Models.vw_All_Level levels, EnterpriseUnitsTypeEnum type)
        {
            var query = (from usrDataTbl in context.Users
                         join cat in context.UserCategories on usrDataTbl.UserCategoryId equals cat.Id
                         where cat.Type == (int)type &&
                         (usrDataTbl.Level1Id == levels.Level1Id) && (usrDataTbl.Level2Id == levels.Level2Id) && (usrDataTbl.Level3Id == levels.Level3Id) && (usrDataTbl.Level4Id == levels.Level4Id)
                         select usrDataTbl.Id);

            return(query.Count());
        }
        public ActionResult GetCountUserForLevel(EnterpriseUnitsTypeEnum type)
        {
            var count = _unitUserService.GetCountUserForLevel(CurrentUser.LevelResponsibleForMe, type);

            return(Content(count.ToString()));
        }
        public List <UnitUserJoinUserModel> GetNonUnitUser(decimal unitId, Models.vw_All_Level levels, EnterpriseUnitsTypeEnum type)
        {
            var query = (from usrDataTbl in context.Users
                         join usrUnitTbl in context.UnitUsers on usrDataTbl.Id equals usrUnitTbl.UserId into usrs
                         join cat in context.UserCategories on usrDataTbl.UserCategoryId equals cat.Id
                         from usr in usrs.DefaultIfEmpty()
                         join userEnterUnitTbl in context.EnterpriseUnits on usr.UnitId equals userEnterUnitTbl.Id into usersEnter
                         from usrsEnter in usersEnter.DefaultIfEmpty()
                         where (usr.UnitId <= 0 || usr.UnitId == null) && cat.Type == (int)type &&
                         (usrDataTbl.Level1Id == levels.Level1Id) && (usrDataTbl.Level2Id == levels.Level2Id) && (usrDataTbl.Level3Id == levels.Level3Id) && (usrDataTbl.Level4Id == levels.Level4Id)
                         // ||usr.UnitId != unitId //&& usrDataTbl.UserCategoryId == catId
                         select new UnitUserJoinUserModel()
            {
                FullName = usrDataTbl.FirstName + " " + usrDataTbl.SecondName + " " + usrDataTbl.ThirdName + " " + usrDataTbl.LastName,
                Id = usrDataTbl.Id,
                UserId = usrDataTbl.Id,
                UnitId = usr.UnitId,
                UnitName = usrsEnter.Name
            }
                         );

            return(query.ToList());
        }