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); }
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); }
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); }
public DataContract.PurchaseTicketResponse PurchaseTicket(DataContract.PurchaseTicketRequest request) { return(base.Channel.PurchaseTicket(request)); }
public DataContract.PurchaseTicketResponse PurchaseTicket(DataContract.PurchaseTicketRequest purchaseTicketRequest) { return(_ticketService.PurchaseTicket(purchaseTicketRequest)); }