Esempio n. 1
0
        // TODO: account for results more robustly (esp. insufficient available seats)
        public static ReserveTicketsResult ReserveTicketsSyos(string sessionKey, int perfId,
				SyosSeatsPerPriceTypeCollection seatsPerPriceType, SpecialRequests requests)
        {
            List<int> priceTypes = new List<int>();
            List<int> seatIds = new List<int>();
            if (seatsPerPriceType.PriceTypeCount == 1)
            {
                priceTypes.Add(seatsPerPriceType[0].PriceTypeId);
                SyosSeatsPerPriceType spt = seatsPerPriceType[0];
                for (int c = 0; c < spt.Count; c++)
                {
                    seatIds.Add(spt[c]);
                }
            }
            else
            {
                foreach (SyosSeatsPerPriceType spt in seatsPerPriceType)
                {
                    for (int c = 0; c < spt.Count; c++)
                    {
                        priceTypes.Add(spt.PriceTypeId);
                        seatIds.Add(spt[c]);
                    }
                }
            }
            ReserveTicketsResult result = ReserveTicketsResult.Success;
            int seatsReserved = 0;
            try
            {
                seatsReserved = UnsecureTess.ReserveTicketsSpecifiedSeats(
                    sWebSessionID: Mask(sessionKey),
                    sPriceType: String.Join(",", priceTypes),
                    iPerformanceNumber: perfId,
                    iNumberOfSeats: 0,
                    iZone: 0,
                    sSpecialRequests: Mask(requests),
                    RequestedSeats: String.Join(",", seatIds));
            }
            catch (Exception e)
            {
                if (e.Message.Contains("One or more of the selected seats"))
                {
                    result = ReserveTicketsResult.Unavailable;
                }
                else
                {
                    throw e;
                }
            }
            if (seatsReserved == 0)
            {
                result = ReserveTicketsResult.Failed;
            }
            else if (seatsReserved < seatIds.Count)
            {
                result = ReserveTicketsResult.PartialFailure;
            }
            return result;
        }
Esempio n. 2
0
        public static ReserveTicketsResult ReserveTicketsSyos(string sessionKey, int perfId,
				SyosSeatsPerPriceTypeCollection seatsPerPriceType)
        {
            return ReserveTicketsSyos(sessionKey, perfId, seatsPerPriceType, null);
        }