@Override
	public List<ChangesetDto> searchChangesets(Integer from, Integer to, Integer projectId) {
		List<ChangesetDto> changesetDtoList = new LinkedList<>();

		// Search Changesets
		SearchChangesetsRequest changesetsRequest = new SearchChangesetsRequest();
		changesetsRequest.setRcsProjectId(projectId);
		changesetsRequest.setPageSize(100);
		SearchChangesetsResponse searchChangesetsResponse = iAstRcsWcfSvc.searchChangesets(changesetsRequest);
		int pageCount = searchChangesetsResponse.getPageCount();

		// iterate over all paged changesets
		if (pageCount > 1) {
			for (int i = 0; i <= pageCount; i++) {
				changesetsRequest.setPageIndex(i);
				searchChangesetsResponse = iAstRcsWcfSvc.searchChangesets(changesetsRequest);

				changesetDtoList.addAll(searchChangesetsResponse.getChangesets().getValue().getChangesetDto());
			}
		} else {
			changesetDtoList.addAll(searchChangesetsResponse.getChangesets().getValue().getChangesetDto());
		}

		List<ChangesetDto> changesetDtoListResult = new LinkedList<>();
		changesetDtoListResult.addAll(changesetDtoList);

		if (to != null || from != null) {
			for (ChangesetDto changesetDto : changesetDtoList) {

				if (to != null)
					if (changesetDto.getId() > to)
						changesetDtoListResult.remove(changesetDto);
				if (from != null) {
					if (changesetDto.getId() < from)
						changesetDtoListResult.remove(changesetDto);
				}

			}
		}

		return changesetDtoListResult;
	}