public static PurchaseTicketResponse ConvertToPurchaseTicketResponse(this TicketPurchase purchase)
 {
     PurchaseTicketResponse response = new PurchaseTicketResponse();
     response.EventId = purchase.Event.Id.ToString();
     response.NoOfTickets = purchase.TicketQuantity;
     response.EventName = purchase.Event.Name;
     response.TicketId = purchase.Id.ToString();
     return response;
 }
Example #2
0
        public PurchaseTicketResponse PurchaseTicket(PurchaseTicketRequest request)
        {
            PurchaseTicketResponse response = new PurchaseTicketResponse();

            try
            {
                if (_responseHistory.IsAUniqueRequest(request.CorrelationId))
                {
                    Event Event = _eventRepository.FindBy(new Guid(request.EventId));
                    TicketPurchase purchase;

                    if (Event.CanPurchaseTicketWith(new Guid(request.ReservationId)))
                    {
                        purchase = Event.PurchaseTicketWith(new Guid(request.ReservationId));
                        response = purchase.ConvertToPurchaseTicketResponse();
                        _eventRepository.Save(Event);

                        response.Success = true;
                    }
                    else
                    {
                        response.Success = false;
                        response.Message = string.Format("Cannot Purchase with reservation Id {0}",
                                                         request.ReservationId);
                    }
                    _responseHistory.LogResponse(request.CorrelationId, response);
                }
                else
                {
                    response = _responseHistory.RetrievePreviousResponseFor(request.CorrelationId);
                }

            }

            catch (Exception ex)

            {
                response.Message = ErrorLog.GenerateErrorRefMessageAndLog(ex);
                response.Success = false;
            }

            return response;
        }