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; }
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; }