Пример #1
0
        public DataContract.PurchaseTicketResponse PurchaseTicket(DataContract.PurchaseTicketRequest request)
        {
            DataContract.PurchaseTicketResponse response = new DataContract.PurchaseTicketResponse();
            try
            {
                if (_purchaseHistory.IsUniqueResponse(request.CorrelationId))
                {
                    Model.Event ticketEvent = this._repository.FindBy(new Guid(request.EventId));
                    var         reservation = ticketEvent.GetReservationWith(new Guid(request.ReservationId));
                    if (ticketEvent.CanPurchaseTicketWith(reservation.Id))
                    {
                        var purchase = ticketEvent.PurchaseTicketWith(reservation.Id);
                        this._repository.Save(ticketEvent);
                        response         = purchase.ConvertToTicketPurchaseResponse();
                        response.Success = true;
                    }
                    else
                    {
                        response.Success = false;
                        response.Message = "can no longer purchase with this reservation";
                    }
                }
                else
                {
                    response = _purchaseHistory.RetrievePreviousResponseFor(request.CorrelationId);
                }
            }
            catch (Exception ex)
            {
                response.Success = false;
                response.Message = ErrorLog.GenerateErrorRef(ex);
            }

            return(response);
        }
Пример #2
0
        public TicketPresentation PurchaseTicketWithReservation(string eventId, string reservationId)
        {
            TicketPresentation ticketPresentation = new TicketPresentation();

            DataContract.PurchaseTicketRequest request = new DataContract.PurchaseTicketRequest();
            request.EventId       = eventId;
            request.ReservationId = reservationId;
            request.CorrelationId = reservationId;
            try
            {
                var response = this._ticketService.PurchaseTicket(request);
                if (response.Success)
                {
                    ticketPresentation.Description             = string.Format("Reservation succeeded");
                    ticketPresentation.EventId                 = response.EventId;
                    ticketPresentation.TicketId                = response.TicketId;
                    ticketPresentation.WasAbleToPurchaseTicket = true;
                }
                else
                {
                    ticketPresentation.WasAbleToPurchaseTicket = false;
                    ticketPresentation.Description             = response.Message;
                }
            }
            catch (Exception ex)
            {
                ticketPresentation.WasAbleToPurchaseTicket = false;
                ticketPresentation.Description             = ex.Message;
            }
            return(ticketPresentation);
        }
Пример #3
0
        public DataContract.PurchaseTicketResponse PurchaseTicket(DataContract.PurchaseTicketRequest purchaseTicketRequest)
        {
            PurchaseTicketResponse response = new PurchaseTicketResponse();

            try
            {
                if (_reservationResponse.IsUniqueRequest(purchaseTicketRequest.EventId))
                {
                    TicketPurchase ticket;
                    Event          Event = _eventRepository.FindBy(new Guid(purchaseTicketRequest.EventId));

                    if (Event.CanPurchaseTicketWith(new Guid(purchaseTicketRequest.ReservationId)))
                    {
                        ticket = Event.PurchaseTicketWith(new Guid(purchaseTicketRequest.ReservationId));
                        _eventRepository.Save(Event);

                        response         = ticket.ConvertToPurchaseTicketResponse();
                        response.Success = true;
                    }
                    else
                    {
                        response.Message = Event.DetermineWhyTicketCannotBePurchasedWith(new Guid(purchaseTicketRequest.ReservationId));
                        response.Success = false;
                    }
                }
                else
                {
                    response.Success = false;
                    response.Message = String.Format("There is no reservation for {0}", purchaseTicketRequest.ReservationId);
                }
            }
            catch (Exception ex)
            {
                response.Message = ErrorLog.GenerateErrorRefMessageAndLog(ex);
                response.Success = false;
            }

            return(response);
        }
Пример #4
0
 public DataContract.PurchaseTicketResponse PurchaseTicket(DataContract.PurchaseTicketRequest request)
 {
     return(base.Channel.PurchaseTicket(request));
 }
 public DataContract.PurchaseTicketResponse PurchaseTicket(DataContract.PurchaseTicketRequest purchaseTicketRequest)
 {
     return(_ticketService.PurchaseTicket(purchaseTicketRequest));
 }