/// <summary> /// /// </summary> /// <param name="username"></param> /// <param name="groupName"></param> /// <param name="labClientName"></param> /// <param name="labClientVersion"></param> /// <returns>The redirect url where the user should be redirected, with the coupon appended to it</returns> public string ExecuteExerimentSchedulingRecipe(string ussGuid, string lssGuid, string username, string groupName, string labServerGuid, string clientGuid, string labClientName, string labClientVersion, long duration, int userTZ) { try { BrokerDB issuer = new BrokerDB(); TicketLoadFactory factory = TicketLoadFactory.Instance(); string ticketType = TicketTypes.SCHEDULE_SESSION; //the uss is the redeemer of the scheduling ticket //string redeemerId = uss.agentGuid; //the SB is the sponsor of the scheduling ticket //string sponsorId = issuer.GetIssuerGuid(); string payload1 = factory.createScheduleSessionPayload(username, groupName, issuer.GetIssuerGuid(), labServerGuid, clientGuid, labClientName, labClientVersion, userTZ); string payload2 = factory.createRequestReservationPayload(); Coupon schedulingCoupon = issuer.CreateTicket(TicketTypes.SCHEDULE_SESSION, ussGuid, issuer.GetIssuerGuid(), duration, payload1); issuer.AddTicket(schedulingCoupon, TicketTypes.REQUEST_RESERVATION, lssGuid, ussGuid, duration, payload2); // // construct the redirection url // string issuerGuid = schedulingCoupon.issuerGuid; string passkey = schedulingCoupon.passkey; string couponId = schedulingCoupon.couponId.ToString(); // obtain the reservation URL from the admin URLs table string schedulingUrl = issuer.RetrieveAdminURL(ussGuid, TicketTypes.SCHEDULE_SESSION).Url; schedulingUrl += "?coupon_id=" + couponId + "&issuer_guid=" + issuerGuid + "&passkey=" + passkey; return schedulingUrl; } catch { throw; } }