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); }
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); }