Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 4
0
        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);
        }