public IHttpActionResult BuyTicketNoRes(TicketNoReservationCreationModel model) { NewTicketSummary summary = newTicketNoRes.New(new Ticket(model.ProjectionIdNumber, model.Row, model.Column)); if (summary.IsCreated) { ITicketDto ticket = ticketRepo.CreateTicket(model.ProjectionIdNumber, model.Row, model.Column); return(Ok(ticket)); } return(BadRequest(summary.Message)); }
public NewTicketSummary New(ITicketCreation ticket) { IProjection projection = projRepo.GetById(ticket.ProjectionId); DateTime now = DateTime.UtcNow; if (projection.StartDate < now) { return(new NewTicketSummary(false, "You have to purchase a ticket before beginning of the projection!")); } return(_newTicketNoRes.New(ticket)); }
public NewTicketSummary New(ITicketCreation ticket) { IEnumerable <IReservation> reservedSeats = ticketRepo.GetReservedSeats(ticket.ProjectionId); IEnumerable <ITicket> purchasedSeats = ticketRepo.GetPurchasedSeats(ticket.ProjectionId); bool checkReservations = reservedSeats.Any(x => x.Row == ticket.Row && x.Column == ticket.Column); bool checkTickets = purchasedSeats.Any(x => x.Row == ticket.Row && x.Column == ticket.Column); if (checkReservations || checkTickets) { return(new NewTicketSummary(false, "This seat is reserved")); } return(_newTicketNoRes.New(ticket)); }