package org.wso2.carbon.order.mgt.ui;

import java.rmi.RemoteException;

import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
import org.apache.axis2.context.ConfigurationContext;
import org.wso2.carbon.order.mgt.data.xsd.OrderItem;
import org.wso2.carbon.order.mgt.stub.OrderManagerStub;

/**
 *
 */
public class OrderManagerClient {
	private OrderManagerStub stub;

	public OrderManagerClient(ConfigurationContext configCtx, String backendServerURL, String cookie)
	                                                                                                 throws Exception {
		String serviceURL = backendServerURL + "OrderManager";
		stub = new OrderManagerStub(configCtx, serviceURL);
		ServiceClient client = stub._getServiceClient();
		Options options = client.getOptions();
		options.setManageSession(true);
		options.setProperty(org.apache.axis2.transport.http.HTTPConstants.COOKIE_STRING, cookie);
	}

	public OrderItem[] getOrderItems() throws RemoteException {
		return stub.getOrderItems();
	}

	public void addOrderItem(String itemName, int itemCount, double price) throws RemoteException {
		stub.addOrderItem(itemName, itemCount, price);
	}

	public String total() throws RemoteException{
		return String.valueOf(stub.getTotalPrice());
	}
}