public Reservation[] ListReservations(string serviceBrokerGuid, string userName, 
            string labServerGuid, string labClientGuid, DateTime startTime, DateTime endTime)
        {
            UserSchedulingDB dbManager = new UserSchedulingDB();
            Ticket retrievedTicket = dbManager.RetrieveAndVerify(opHeader.coupon, TicketTypes.REDEEM_RESERVATION);
            if (retrievedTicket.IsExpired())
            {
                throw new AccessDeniedException("The reservation ticket has expired, Please re-login.");
            }
            //used to check ticketPayload
            string user = null;
            string group = null;
            string labGuid = null;
            string clientGuid = null;
            string sbGuid = null;

            //Resolved target arguments
            string userTarget = null;
            string labGuidTarget = null;
            string clientGuidTarget = null;
            string lssUrl = null;
            string lssGuid = null;
            XmlDocument payload = new XmlDocument();
            payload.LoadXml(retrievedTicket.payload);

            sbGuid = payload.GetElementsByTagName("sbGuid")[0].InnerText;
            user = payload.GetElementsByTagName("userName")[0].InnerText;
            group = payload.GetElementsByTagName("groupName")[0].InnerText;
            clientGuid = payload.GetElementsByTagName("clientGuid")[0].InnerText;
            labGuid = payload.GetElementsByTagName("labServerGuid")[0].InnerText;

            lssUrl = dbManager.ListLssUrlByExperiment(clientGuid, labServerGuid);
            lssGuid = dbManager.ListLssIdByExperiment(clientGuid, labServerGuid);

            userTarget = Utilities.ResolveArguments(userName, user, true);
            clientGuidTarget = Utilities.ResolveArguments(labClientGuid, clientGuid, false);
            labGuidTarget = Utilities.ResolveArguments(labServerGuid, labGuid, false);

            DateTime targetStart = new DateTime(startTime.Year, startTime.Month, startTime.Day,
               startTime.Hour, startTime.Minute, 0, startTime.Kind);
            if (targetStart.Kind != DateTimeKind.Utc)
                targetStart = targetStart.ToUniversalTime();
            DateTime targetEnd = new DateTime(endTime.Year, endTime.Month, endTime.Day,
                    endTime.Hour, endTime.Minute, 0, endTime.Kind);
            if (targetEnd.Kind != DateTimeKind.Utc)
                targetEnd = targetEnd.ToUniversalTime();
            ReservationInfo[] resInfos = dbManager.GetReservationInfos(serviceBrokerGuid, userTarget, group,
                labGuidTarget, clientGuidTarget, targetStart, targetEnd);
            if (resInfos != null && resInfos.Length > 0)
            {
                Reservation[] reservations = new Reservation[resInfos.Length];

                for (int i = 0; i < resInfos.Length; i++)
                {
                    reservations[i] = new Reservation(resInfos[i].startTime, resInfos[i].endTime);
                    reservations[i].userName = resInfos[i].userName;
                }
                return reservations;
            }
            else
                return null;
        }