static void Main(string[] args) { EventTickets.Contracts.ITicketService myService; myService = new TicketServiceClientProxy(); //EventTickets.Service.TicketService myService = new TicketService(); //IEventRepository myRepository = new InMemoryRepository(); //foreach (Event x in myRepository) // Debug.Print(x.Id.ToString()); ReserveTicketResponse reservation = myService.ReserveTicket(new ReserveTicketRequest { EventId = "7632ef29-64aa-4fc7-90aa-d86cf735f1a8", TicketQuantity = 3 }); Console.WriteLine(reservation.Message ?? "OK"); Console.WriteLine("{0} {1}", reservation.ReservationNumber, reservation.NoOfTickets); PurchaseTicketResponse purchase = myService.PurchaseTicket(new PurchaseTicketRequest { ReservationId = reservation.ReservationNumber, EventId = reservation.EventId, }); Console.WriteLine("{0} {1}", purchase.Message ?? "OK", purchase.TicketId); Console.Read(); }
public TicketReservationPresentation ReserveTicketsFor(string EventId, int NoOfTkts) { TicketReservationPresentation reservation = new TicketReservationPresentation(); ReserveTicketResponse response = new ReserveTicketResponse(); ReserveTicketRequest request = new ReserveTicketRequest(); request.EventId = EventId; request.TicketQuantity = NoOfTkts; response = _ticketService.ReserveTicket(request); if (response.Success) { reservation.TicketWasSuccessfullyReserved = true; reservation.ReservationId = response.ReservationNumber; reservation.ExpiryDate = response.ExpirationDate; reservation.EventId = response.EventId; reservation.Description = String.Format("{0} ticket(s) reserved for {1}.<br/><small>This reservation will expire on {2} at {3}.</small>", response.NoOfTickets, response.EventName, response.ExpirationDate.ToLongDateString(), response.ExpirationDate.ToLongTimeString()); } else { reservation.TicketWasSuccessfullyReserved = false; reservation.Description = response.Message; } return(reservation); }
/// <summary> /// 订票 /// </summary> /// <param name="reserveTicketRequest">订票请求</param> /// <returns></returns> public ReserveTicketResponse ReserveTicket(ReserveTicketRequest reserveTicketRequest) { ReserveTicketResponse response = new ReserveTicketResponse(); try { //1 检索与请求的赛事相关的赛事 Event my_Event = _eventRepository.FindBy(new Guid(reserveTicketRequest.EventId)); TicketReservation reservation; //2 判断是否有传入的请求中所要求的预定票数 if (my_Event.CanReserveTicket(reserveTicketRequest.TicketQuantity)) { //2.1 预定指定数量的门票 reservation = my_Event.ReserveTicket(reserveTicketRequest.TicketQuantity); _eventRepository.Save(my_Event); //获取预定门票响应 response = reservation.ConvertToReserveTicketResponse(); response.Success = true; } else { response.Success = false; response.Message = String.Format("There are {0} ticket(s) available.", my_Event.AvailableAllocation()); } } catch (Exception ex) { // Shield Exceptions response.Message = ErrorLog.GenerateErrorRefMessageAndLog(ex); response.Success = false; } return(response); }
public ReserveTicketResponse ReserveTicket(ReserveTicketRequest reserveTicketRequest) { ReserveTicketResponse response = new ReserveTicketResponse(); try { Event Event = _eventRepository.FindBy(new Guid(reserveTicketRequest.EventId)); TicketReservation reservation; if (Event.CanReserveTicket(reserveTicketRequest.TicketQuantity)) { reservation = Event.ReserveTicket(reserveTicketRequest.TicketQuantity); _eventRepository.Save(Event); response = reservation.ConvertToReserveTicketResponse(); response.Success = true; } else { response.Success = false; response.Message = String.Format("There are {0} ticket(s) available.", Event.AvailableAllocation()); } } catch (Exception ex) { // Shield Exceptions response.Message = ErrorLog.GenerateErrorRefMessageAndLog(ex); response.Success = false; } return(response); }
public DataContract.ReserveTicketResponse ReserveTicket(DataContract.ReserveTicketRequest reserveTicketRequest) { foreach (Event x in _eventRepository) { Debug.Print(x.Id.ToString()); } ReserveTicketResponse response = new ReserveTicketResponse(); try { Event Event = _eventRepository.FindBy( new Guid(reserveTicketRequest.EventId)); TicketReservation reservation; if (Event.CanReserveTicket(reserveTicketRequest.TicketQuantity)) { reservation = Event.ReserveTicket(reserveTicketRequest.TicketQuantity); _eventRepository.Save(Event); response = reservation.ConvertToReserveTicketResponse(); response.Success = true; } else { response.Success = false; response.Message = String.Format("There are {0} tickets available ", Event.AvailableAllocation()); } } catch (Exception ex) { response.Success = false; response.Message = ErrorLog.GenerateErrorRefMessageAndLog(ex); } return(response); }
public static ReserveTicketResponse ConvertToReserveTicketResponse(this TicketReservation reservation) { ReserveTicketResponse response = new ReserveTicketResponse(); response.EventId = reservation.Event.Id.ToString(); response.EventName = reservation.Event.Name; response.ExpirationDate = reservation.ExpiryTime; response.NoOfTickets = reservation.TicketQuantity; response.ReservationNumber = reservation.Id.ToString(); return(response); }