public long[] RetrieveExperimentIds(Criterion[] carray) { BrokerDB brokerDB = new BrokerDB(); long[] expIds = null; if (brokerDB.AuthenticateIssuedCoupon(opHeader.coupon)) { expIds = getExperimentIDs(opHeader.coupon, carray); } return expIds; }
public ExperimentSummary[] RetrieveExperimentSummary(Criterion[] carray) { BrokerDB brokerDB = new BrokerDB(); ExperimentSummary[] summaries = null; if (brokerDB.AuthenticateIssuedCoupon(opHeader.coupon)) { long[] expIds = getExperimentIDs(opHeader.coupon, carray); summaries = InternalDataDB.SelectExperimentSummaries(expIds); } return summaries; }
public StorageStatus ClientCloseExperiment(long experimentId) { BrokerDB ticketIssuer = new BrokerDB(); StorageStatus status = null; bool experimentClosed = false; //Coupon opCoupon = new Coupon(opHeader.coupon.issuerGuid, opHeader.coupon.couponId, // opHeader.coupon.passkey); if (ticketIssuer.AuthenticateIssuedCoupon(opHeader.coupon)) { Ticket expTicket = ticketIssuer.RetrieveTicket(opHeader.coupon, TicketTypes.EXECUTE_EXPERIMENT); if (expTicket != null) { // Check for ESS use Ticket essTicket = ticketIssuer.RetrieveTicket(opHeader.coupon, TicketTypes.ADMINISTER_EXPERIMENT); if (essTicket != null) { ProcessAgentInfo ess = ticketIssuer.GetProcessAgentInfo(essTicket.redeemerGuid); if (ess != null) { if (ess.retired) { throw new Exception("The ProcessAgent is retired"); } ExperimentStorageProxy essProxy = new ExperimentStorageProxy(); essProxy.AgentAuthHeaderValue = new AgentAuthHeader(); essProxy.AgentAuthHeaderValue.coupon = ess.identOut; essProxy.Url = ess.webServiceUrl; status = essProxy.CloseExperiment(experimentId); DataStorageAPI.UpdateExperimentStatus(status); } ticketIssuer.CancelIssuedTicket(opHeader.coupon, essTicket); } else { // Close the local Experiment records // Note: store and retrieve tickets are not cancelled. experimentClosed = DataStorageAPI.CloseExperiment(experimentId, StorageStatus.CLOSED_USER); status = DataStorageAPI.RetrieveExperimentStatus(experimentId); } } } return status; }