/*
* $Id: RunBusiness.java,v 1.26.4.1 2006/06/30 08:36:40 sigtryggur Exp $
* Created on Aug 16, 2005
*
* Copyright (C) 2005 Idega Software hf. All Rights Reserved.
*
* This software is the proprietary information of Idega hf.
* Use is subject to license terms.
*/
package is.idega.idegaweb.marathon.business;
import is.idega.idegaweb.marathon.data.Participant;
import java.util.Collection;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import javax.ejb.CreateException;
import javax.ejb.FinderException;
import com.idega.block.creditcard.business.CreditCardAuthorizationException;
import com.idega.business.IBOLookupException;
import com.idega.business.IBOService;
import com.idega.core.location.data.Country;
import com.idega.data.IDOCreateException;
import com.idega.presentation.IWContext;
import com.idega.user.business.UserBusiness;
import com.idega.user.data.Group;
import com.idega.user.data.User;
import com.idega.util.IWTimestamp;
/**
* Last modified: $Date: 2006/06/30 08:36:40 $ by $Author: sigtryggur $
*
* @author <a href="mailto:laddi@idega.com">laddi</a>
* @version $Revision: 1.26.4.1 $
*/
public interface RunBusiness extends IBOService {
/**
* @see is.idega.idegaweb.marathon.business.RunBusinessBean#isRegisteredInRun
*/
public boolean isRegisteredInRun(int runID, int userID) throws java.rmi.RemoteException;
/**
* @see is.idega.idegaweb.marathon.business.RunBusinessBean#isRegisteredInRun
*/
public boolean isRegisteredInRun(String year, Group run, User user) throws java.rmi.RemoteException;
/**
* @see is.idega.idegaweb.marathon.business.RunBusinessBean#doesGroupExist
*/
public boolean doesGroupExist(Object distancePK, String groupName) throws java.rmi.RemoteException;
/**
* @see is.idega.idegaweb.marathon.business.RunBusinessBean#isRegisteredInRun
*/
public boolean isRegisteredInRun(int runID, String personalID) throws java.rmi.RemoteException;
/**
* @see is.idega.idegaweb.marathon.business.RunBusinessBean#getAgeFromPersonalID
*/
public int getAgeFromPersonalID(String personalID) throws java.rmi.RemoteException;
/**
* @see is.idega.idegaweb.marathon.business.RunBusinessBean#saveRun
*/
public void saveRun(int userID, String run, String distance, String year, String nationality, String tshirt,
String chipOwnershipStatus, String chipNumber, String groupName, String bestTime, String goalTime, Locale locale)
throws java.rmi.RemoteException;
/**
* @see is.idega.idegaweb.marathon.business.RunBusinessBean#importParticipant
*/
public Participant importParticipant(User user, Group run, Group year, Group distance, Country country)
throws CreateException, java.rmi.RemoteException;
/**
* @see is.idega.idegaweb.marathon.business.RunBusinessBean#saveParticipants
*/
public Collection saveParticipants(Collection runners, String email, String hiddenCardNumber, double amount,
IWTimestamp date, Locale locale) throws IDOCreateException, java.rmi.RemoteException;
/**
* @see is.idega.idegaweb.marathon.business.RunBusinessBean#addParticipantsToGroup
*/
public void addParticipantsToGroup(String[] participants, String[] bestTimes, String[] estimatedTimes,
String groupName) throws java.rmi.RemoteException;
/**
* @see is.idega.idegaweb.marathon.business.RunBusinessBean#finishPayment
*/
public void finishPayment(String properties) throws CreditCardAuthorizationException, java.rmi.RemoteException;
/**
* @see is.idega.idegaweb.marathon.business.RunBusinessBean#authorizePayment
*/
public String authorizePayment(String nameOnCard, String cardNumber, String monthExpires, String yearExpires,
String ccVerifyNumber, double amount, String currency, String referenceNumber)
throws CreditCardAuthorizationException, java.rmi.RemoteException;
/**
* @see is.idega.idegaweb.marathon.business.RunBusinessBean#getPriceForRunner
*/
public float getPriceForRunner(Runner runner, Locale locale, float chipDiscount, float chipPrice)
throws java.rmi.RemoteException;
/**
* @see is.idega.idegaweb.marathon.business.RunBusinessBean#getNumberOfChildren
*/
public int getNumberOfChildren(Collection runners) throws java.rmi.RemoteException;
/**
* @see is.idega.idegaweb.marathon.business.RunBusinessBean#getCreditCardImages
*/
public Collection getCreditCardImages() throws java.rmi.RemoteException;
/**
* @see is.idega.idegaweb.marathon.business.RunBusinessBean#savePayment
*/
public void savePayment(int userID, int distanceID, String payMethod, String amount) throws java.rmi.RemoteException;
/**
* @see is.idega.idegaweb.marathon.business.RunBusinessBean#savePaymentByUserID
*/
public void savePaymentByUserID(int userID, String payMethod, String amount) throws java.rmi.RemoteException;
/**
* @see is.idega.idegaweb.marathon.business.RunBusinessBean#updateParticipantAndChip
*/
public void updateParticipantAndChip(int userID, String partiNr, String chipNr) throws java.rmi.RemoteException;
/**
* @see is.idega.idegaweb.marathon.business.RunBusinessBean#updateTeamName
*/
public void updateTeamName(int userID, int groupID, String teamName) throws java.rmi.RemoteException;
/**
* @see is.idega.idegaweb.marathon.business.RunBusinessBean#updateRunAndChipTimes
*/
public void updateRunAndChipTimes(int userID, int groupID, String runTime, String chipTime)
throws java.rmi.RemoteException;
/**
* @see is.idega.idegaweb.marathon.business.RunBusinessBean#updateRunForParticipant
*/
public void updateRunForParticipant(Participant participant, int bibNumber, String runTime, String chipTime,
String splitTime1, String splitTime2) throws java.rmi.RemoteException;
/**
* @see is.idega.idegaweb.marathon.business.RunBusinessBean#getRunObjByUserIDandDistanceID
*/
public Participant getRunObjByUserIDandDistanceID(int userID, int distanceID) throws java.rmi.RemoteException;
/**
* @see is.idega.idegaweb.marathon.business.RunBusinessBean#getParticipantByDistanceAndParticipantNumber
*/
public Participant getParticipantByDistanceAndParticipantNumber(Object distancePK, int participantNumber)
throws FinderException, java.rmi.RemoteException;
/**
* @see is.idega.idegaweb.marathon.business.RunBusinessBean#getParticipantByRunAndYear
*/
public Participant getParticipantByRunAndYear(User user, Group run, Group year) throws FinderException,
java.rmi.RemoteException;
/**
* @see is.idega.idegaweb.marathon.business.RunBusinessBean#getRunGroupByGroupId
*/
public Group getRunGroupByGroupId(Integer groupId) throws java.rmi.RemoteException;
/**
* @see is.idega.idegaweb.marathon.business.RunBusinessBean#getRunObjByUserAndGroup
*/
public Participant getRunObjByUserAndGroup(int userID, int groupID) throws java.rmi.RemoteException;
/**
* @see is.idega.idegaweb.marathon.business.RunBusinessBean#getRunnersByDistance
*/
public Collection getRunnersByDistance(Group distance, Group runGroup) throws java.rmi.RemoteException;
/**
* @see is.idega.idegaweb.marathon.business.RunBusinessBean#setParticipantNumber
*/
public void setParticipantNumber(Participant participant, String run) throws java.rmi.RemoteException;
/**
* @see is.idega.idegaweb.marathon.business.RunBusinessBean#sendMessage
*/
public void sendMessage(String email, String subject, String body) throws java.rmi.RemoteException;
/**
* @see is.idega.idegaweb.marathon.business.RunBusinessBean#getDistancesForRun
*/
public String[] getDistancesForRun(Group run) throws java.rmi.RemoteException;
/**
* @see is.idega.idegaweb.marathon.business.RunBusinessBean#createNewGroupYear
*/
public void createNewGroupYear(IWContext iwc, Group run, String year, String[] priceISK, String[] priceEUR,
String[] useChips, String[] childrenPriceISK, String[] childrenPriceEUR, String[] familyDiscount,
String[] allowsGroups) throws java.rmi.RemoteException;
/**
* @see is.idega.idegaweb.marathon.business.RunBusinessBean#getRuns
*/
public Collection getRuns() throws java.rmi.RemoteException;
/**
* @see is.idega.idegaweb.marathon.business.RunBusinessBean#getRunsForUser
*/
public Collection getRunsForUser(User user) throws java.rmi.RemoteException;
/**
* @see is.idega.idegaweb.marathon.business.RunBusinessBean#getRunGroupsForUser
*/
public Collection getRunGroupsForUser(User user) throws java.rmi.RemoteException;
/**
* @see is.idega.idegaweb.marathon.business.RunBusinessBean#getRunGroupOfTypeForGroup
*/
public Group getRunGroupOfTypeForGroup(Group group, String type) throws java.rmi.RemoteException;
/**
* @see is.idega.idegaweb.marathon.business.RunBusinessBean#getYears
*/
public Collection getYears(Group run) throws java.rmi.RemoteException;
/**
* @see is.idega.idegaweb.marathon.business.RunBusinessBean#getYears
*/
public Collection getYears(Group run, String yearFilter) throws java.rmi.RemoteException;
/**
* @see is.idega.idegaweb.marathon.business.RunBusinessBean#getYearsMap
*/
public Map getYearsMap(Group run) throws java.rmi.RemoteException;
/**
* @see is.idega.idegaweb.marathon.business.RunBusinessBean#getYearsMap
*/
public Map getYearsMap(Group run, String groupNameFilter) throws java.rmi.RemoteException;
/**
* @see is.idega.idegaweb.marathon.business.RunBusinessBean#getDistancesMap
*/
public List getDistancesMap(Group run, String year) throws java.rmi.RemoteException;
/**
* @see is.idega.idegaweb.marathon.business.RunBusinessBean#getDistanceByUserID
*/
public Group getDistanceByUserID(int userID) throws java.rmi.RemoteException;
/**
* @see is.idega.idegaweb.marathon.business.RunBusinessBean#getUserAge
*/
public int getUserAge(User user) throws java.rmi.RemoteException;
/**
* @see is.idega.idegaweb.marathon.business.RunBusinessBean#getCountries
*/
public Collection getCountries() throws java.rmi.RemoteException;
/**
* @see is.idega.idegaweb.marathon.business.RunBusinessBean#getUserBiz
*/
public UserBusiness getUserBiz() throws IBOLookupException, java.rmi.RemoteException;
/**
* @see is.idega.idegaweb.marathon.business.RunBusinessBean#getCountryByNationality
*/
public Country getCountryByNationality(Object nationality) throws java.rmi.RemoteException;
}