private static TaskType[] listTasks(modelPortType modelPort) { // Let's say we want to retrieve tasks' next scheduled time (because this may be a costly operation if // JDBC based quartz scheduler is used, the fetching of this attribute has to be explicitly requested) SelectorQualifiedGetOptionType getNextScheduledTimeOption = new SelectorQualifiedGetOptionType(); // prepare a selector (described by path) + options (saying to retrieve that attribute) ObjectSelectorType selector = new ObjectSelectorType(); selector.path = createItemPathType("nextRunStartTimestamp"); getNextScheduledTimeOption.selector = selector; GetOperationOptionsType selectorOptions = new GetOperationOptionsType(); selectorOptions.retrieve = RetrieveOptionType.include; selectorOptions.retrieveSpecified = true; getNextScheduledTimeOption.options = selectorOptions; SelectorQualifiedGetOptionType[] operationOptions = new SelectorQualifiedGetOptionType[] { getNextScheduledTimeOption }; searchObjects request = new searchObjects(TASK_TYPE, null, operationOptions); searchObjectsResponse response = modelPort.searchObjects(request); ObjectListType objectList = response.objectList; List <TaskType> tasks = new List <TaskType>(); foreach (ObjectType1 object1 in response.objectList.@object) { tasks.Add((TaskType)object1); } return(tasks.ToArray()); }
private static ObjectType1[] listObjects(modelPortType modelPort, XmlQualifiedName type) { searchObjects request = new searchObjects(type, null, null); searchObjectsResponse response = modelPort.searchObjects(request); ObjectListType objectList = response.objectList; ObjectType1[] objects = objectList.@object; return(objects); }
private static RoleType searchRoleByName(modelPortType modelPort, String roleName) { QueryType query = new QueryType(); query.filter = createNameFilter(roleName); searchObjects request = new searchObjects(ROLE_TYPE, query, null); searchObjectsResponse response = modelPort.searchObjects(request); return((RoleType)getOneObject(response, roleName)); }
private static UserType searchUserByName(modelPortType modelPort, String username) { QueryType query = new QueryType(); query.filter = createNameFilter(username); searchObjects request = new searchObjects(USER_TYPE, query, null); searchObjectsResponse response = modelPort.searchObjects(request); return((UserType)getOneObject(response, username)); }
private static ObjectType1[] listRequestableRoles(modelPortType modelPort) { SearchFilterType filter = createRequestableFilter(); QueryType query = new QueryType(); query.filter = filter; searchObjects request = new searchObjects(ROLE_TYPE, query, null); searchObjectsResponse response = modelPort.searchObjects(request); ObjectListType objectList = response.objectList; ObjectType1[] objects = objectList.@object; return(objects); }
private static ObjectType getOneObject(searchObjectsResponse response, String name) { ObjectType[] objects = response.objectList.@object; if (objects == null || objects.Length == 0) { return(null); } else if (objects.Length == 1) { return((ObjectType)objects[0]); } else { throw new InvalidOperationException("Expected to find a object with name '" + name + "' but found " + objects.Length + " ones instead"); } }
private static ObjectType1[] listObjectsRestrictedAndSorted(modelPortType modelPort, XmlQualifiedName type) { // let's say we want to get first 3 users, sorted alphabetically by user name QueryType queryType = new QueryType(); // holds search query + paging options PagingType pagingType = new PagingType(); pagingType.maxSize = 3; ItemPathType orderBy = createItemPathType("name"); pagingType.orderBy = orderBy; pagingType.orderDirection = OrderDirectionType.ascending; queryType.paging = pagingType; searchObjects request = new searchObjects(type, queryType, null); searchObjectsResponse response = modelPort.searchObjects(request); ObjectListType objectList = response.objectList; ObjectType1[] objects = objectList.@object; return(objects); }
private static ObjectType getOneObject(searchObjectsResponse response, String name) { ObjectType[] objects = response.objectList.@object; if (objects == null || objects.Length == 0) { return null; } else if (objects.Length == 1) { return (ObjectType)objects[0]; } else { throw new InvalidOperationException("Expected to find a object with name '" + name + "' but found " + objects.Length + " ones instead"); } }