public IQueryable <SetEcusConnectionModel> Paging(SetEcusConnectionCriteria criteria, int pageNumber, int pageSize, out int totalItems) { ICurrentUser _user = PermissionExtention.GetUserMenuPermission(currentUser, Menu.settingEcusConnection); var rangeSearch = PermissionExtention.GetPermissionRange(currentUser.UserMenuPermission.List); if (rangeSearch == PermissionRange.None) { totalItems = 0; return(null); } IQueryable <SetEcusConnectionModel> list = QueryPermission(criteria, rangeSearch); if (list == null) { totalItems = 0; return(null); } totalItems = list.Count(); if (pageSize > 1) { if (pageNumber < 1) { pageNumber = 1; } list = list.Skip((pageNumber - 1) * pageSize).Take(pageSize).OrderByDescending(x => x.DatetimeModified); } return(list); }
private IQueryable <SetEcusConnectionModel> Query(SetEcusConnectionCriteria criteria) { IQueryable <SetEcusConnectionModel> results = null; var list = GetConnections(); if (string.IsNullOrEmpty(criteria.All)) { results = list.Where(x => (x.Username ?? "").IndexOf(criteria.Username ?? "", StringComparison.OrdinalIgnoreCase) > -1 && (x.Name ?? "").IndexOf(criteria.Name ?? "", StringComparison.OrdinalIgnoreCase) > -1 && (x.ServerName ?? "").IndexOf(criteria.ServerName ?? "", StringComparison.OrdinalIgnoreCase) > -1 && (x.Dbname ?? "").IndexOf(criteria.Dbname ?? "", StringComparison.OrdinalIgnoreCase) > -1 && (x.Fullname ?? "").IndexOf(criteria.Fullname ?? "", StringComparison.OrdinalIgnoreCase) > -1 )?.AsQueryable(); } else { results = list.Where(x => (x.Username ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1 || (x.Name ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1 || (x.ServerName ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1 || (x.Dbname ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1 || (x.Fullname ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1 )?.AsQueryable(); } return(results); }
public IActionResult Paging(SetEcusConnectionCriteria criteria, int pageNumber, int pageSize) { var data = ecusConnectionService.Paging(criteria, pageNumber, pageSize, out int totalItems); var result = new { data, totalItems, pageNumber, pageSize }; return(Ok(result)); }
private IQueryable <SetEcusConnectionModel> QueryPermission(SetEcusConnectionCriteria criteria, PermissionRange range) { var list = Query(criteria); IQueryable <SetEcusConnectionModel> data = null; if (list == null) { return(list); } switch (range) { case PermissionRange.Owner: data = list.Where(x => x.UserCreated == currentUser.UserID); break; case PermissionRange.Group: data = list.Where(x => x.UserCreated == currentUser.UserID || x.GroupId == currentUser.GroupId && x.DepartmentId == currentUser.DepartmentId && x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID); break; case PermissionRange.Department: data = list.Where(x => x.UserCreated == currentUser.UserID || x.DepartmentId == currentUser.DepartmentId && x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID); break; case PermissionRange.Office: data = list.Where(x => x.UserCreated == currentUser.UserID || x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID); break; case PermissionRange.Company: data = list.Where(x => x.UserCreated == currentUser.UserID || x.CompanyId == currentUser.CompanyID); break; case PermissionRange.All: data = list; break; } return(data); }