示例#1
0
        public UserDatatables GetMobileUsersForTable(int page, int itemsPerPage, string sortBy, bool reverse, string custSearchValue)
        {
            var users = from a in _userRepository.GetAllQueryable()
                        join b in _userRolesRepository.GetAllQueryable() on a.Id equals b.UserId into t1
                        from b in t1.DefaultIfEmpty()
                        join d in _roleRepository.GetAllQueryable() on b.RoleId equals d.Id into t3
                        from d in t3.DefaultIfEmpty()
                        join t in _driverRepository.GetAllQueryable() on a.DriverC equals t.DriverC into t4
                        from t in t4.DefaultIfEmpty()
                        where t != null && a.IsMobileUser == "1" && (string.IsNullOrEmpty(custSearchValue) || (a.UserName.Contains(custSearchValue) ||
                                                                                                               (t.LastN + " " + t.FirstN).Contains(custSearchValue))
                                                                     )
                        select new UserViewModel()
            {
                UserName = a.UserName,
                DriverC  = a.DriverC,
                DriverN  = t != null ? t.LastN + " " + t.FirstN : "",
                RoleId   = b.RoleId,
                RoleN    = d != null ? d.Name : "",
                IsActive = a.IsActive
            };
            // sorting (done with the System.Linq.Dynamic library available on NuGet)
            var usersOrdered = users.OrderBy(sortBy + (reverse ? " descending" : ""));

            // paging
            var usersPaged = usersOrdered.Skip((page - 1) * itemsPerPage).Take(itemsPerPage).ToList();

            var data = new UserDatatables()
            {
                Data  = usersPaged,
                Total = usersPaged.Count()
            };

            return(data);
        }
示例#2
0
        public UserDatatables GetUsersForTable(int page, int itemsPerPage, string sortBy, bool reverse, string userLogin, string custSearchValue)
        {
            var filtedUser = "";

            if (userLogin.Equals("cus_kanri"))
            {
                filtedUser = "******";
            }

            var users = from a in _userRepository.GetAllQueryable()
                        join b in _userRolesRepository.GetAllQueryable() on a.Id equals b.UserId into t1
                        from b in t1.DefaultIfEmpty()
                        join c in _employeeRepository.GetAllQueryable() on a.EmployeeC equals c.EmployeeC into t2
                        from c in t2.DefaultIfEmpty()
                        join d in _roleRepository.GetAllQueryable() on b.RoleId equals d.Id into t3
                        from d in t3.DefaultIfEmpty()
                        join t in _driverRepository.GetAllQueryable() on a.DriverC equals t.DriverC into t4
                        from t in t4.DefaultIfEmpty()
                        where t == null && a.IsMobileUser == "0" && (custSearchValue == null || custSearchValue == "" || (a.UserName.Contains(custSearchValue) ||
                                                                                                                          c == null || (c.EmployeeLastN + " " + c.EmployeeFirstN).Contains(custSearchValue))
                                                                     ) && (string.IsNullOrEmpty(filtedUser) || !filtedUser.Contains(a.UserName))
                        select new UserViewModel()
            {
                UserName  = a.UserName,
                EmployeeC = a.EmployeeC,
                EmployeeN = c != null ? c.EmployeeLastN + " " + c.EmployeeFirstN : "",
                RoleId    = b.RoleId,
                RoleN     = d != null ? d.Name : "",
                IsActive  = a.IsActive
            };
            // sorting (done with the System.Linq.Dynamic library available on NuGet)
            var usersOrdered = users.OrderBy(sortBy + (reverse ? " descending" : ""));

            // paging
            var usersPaged = usersOrdered.Skip((page - 1) * itemsPerPage).Take(itemsPerPage).ToList();

            var data = new UserDatatables()
            {
                Data  = usersPaged,
                Total = usersPaged.Count()
            };

            return(data);
        }