/**
 * IServiceManagement.java
 * Created on Jun 25, 2008
 * (C) Copyright TANDBERG Television Ltd.
 */
package com.tandbergtv.watchpoint.pmm.service;

import java.util.List;
import java.util.Set;

import com.tandbergtv.watchpoint.pmm.entities.Service;
import com.tandbergtv.watchpoint.pmm.util.DataOperationException;
import com.tandbergtv.workflow.util.SearchCriteria;

/**
 * @author Vlada Jakobac
 * 
 */
public interface IServiceManagement {

	

	/**
	 * Method to get all the matched Services for the given criteria
	 * 
	 * @param searchCriteria
	 *            The SearchCriteria used to sort and filter the list of
	 *            Services
	 * 
	 * @return The list of Services
	 * 
	 */
	List<Service> getServicesBySearchCriteria(SearchCriteria searchCriteria);

	Service createService(Service service);

	Service getService(long serviceId);

	boolean deleteService(long serviceId) throws DataOperationException;

	Service updateService(Service service);

	Set<Service> getAllServicesAssociatedWithPartner(long contextId);
	
	List<Service> getAllActiveServices();

	int getTotalActiveServiceCount();
}
