Beispiel #1
0
        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));
        }