Ejemplo n.º 1
0
        public void Delete(ReservedSeatDomainModel entity)
        {
            if (entity == null)
            {
                throw new ArgumentNullException("entity");
            }
            ReservedSeat reservedSeat = Mapper.Map <ReservedSeatDomainModel, ReservedSeat>(entity);

            Uow.GetRepository <ReservedSeat>().Delete(reservedSeat);
            Uow.Save();
        }
Ejemplo n.º 2
0
        public ReservedSeatDomainModel ReadById(object id)
        {
            if (id == null)
            {
                throw new ArgumentNullException("id");
            }
            ReservedSeat            reservedSeat       = Uow.GetRepository <ReservedSeat>().ReadById(id);
            ReservedSeatDomainModel reservedSeatDomain = Mapper.Map <ReservedSeat,
                                                                     ReservedSeatDomainModel>(reservedSeat);

            return(reservedSeatDomain);
        }
Ejemplo n.º 3
0
        public ActionResult Create([FromJson] OrderViewModel orderViewModel)
        {
            ModelState.Clear();
            string currentUserId = User.Identity.GetUserId();
            var    currentSeance = _seanceService.ReadById(orderViewModel.SeanceId);

            var permittedUserSeats = (from seat in currentSeance.ReservedSeats
                                      where seat.ApplicationUserId == currentUserId &&
                                      seat.IsSold == false &&
                                      DateTime.Compare(DateTime.Now, seat.ReservationTime.AddMinutes(10)) < 0
                                      select seat).ToList();

            List <SeatViewModel> targetSeats = new List <SeatViewModel>();

            foreach (var seat in permittedUserSeats)
            {
                SeatViewModel seatModel = (from seatToBuy in orderViewModel.Seats
                                           where seatToBuy.ColumnNumber == seat.ColumnNumber &&
                                           seatToBuy.RowNumber == seat.RowNumber

                                           select seatToBuy).SingleOrDefault();
                if (seatModel != null)
                {
                    targetSeats.Add(seatModel);
                }
            }
            bool areAllSeatsAccepted = orderViewModel.Seats.Count() == targetSeats.Count();

            if (!areAllSeatsAccepted)
            {
                return(Json(Url.Action("TimeIsOut", "Home")));
            }
            foreach (var seat in targetSeats)
            {
                ReservedSeatDomainModel payedSeat = (from reservedSeat in currentSeance.ReservedSeats
                                                     where reservedSeat.RowNumber == seat.RowNumber &&
                                                     reservedSeat.ColumnNumber == seat.ColumnNumber
                                                     select reservedSeat).SingleOrDefault();

                TicketDomainModel ticket = new TicketDomainModel();
                ticket.SeatId            = seat.Id;
                ticket.ApplicationUserId = currentUserId;
                ticket.PaymentDate       = DateTime.Now;
                ticket.PaymentMethodId   = orderViewModel.PaymentMethodId;
                ticket.SeanceId          = orderViewModel.SeanceId;
                payedSeat.IsSold         = true;
                //_seanceService.Update(currentSeance);
                _ticketService.Add(ticket);
                payedSeat.Seance = null;
                _reservedSeatService.Update(payedSeat);
            }
            return(Json(Url.Action("Index", "Ticket")));
        }
Ejemplo n.º 4
0
        public ActionResult ToogleReservationStatus([FromJson] SeatViewModel seatViewModel, long seanceId)
        {
            SeanceDomainModel currentSeance = _seanceService.ReadById(seanceId);
            string            currentUserId = User.Identity.GetUserId();

            if (currentSeance == null || seatViewModel == null)
            {
                HttpNotFound();
            }
            else
            {
                var reservedSeat = (from seat in currentSeance.ReservedSeats
                                    where seat.RowNumber == seatViewModel.RowNumber &&
                                    seat.ColumnNumber == seatViewModel.ColumnNumber
                                    select seat).SingleOrDefault();
                if (reservedSeat == null)
                {
                    ReservedSeatDomainModel currentReservedSeat = new ReservedSeatDomainModel
                    {
                        RowNumber         = seatViewModel.RowNumber,
                        ColumnNumber      = seatViewModel.ColumnNumber,
                        ReservationTime   = DateTime.Now,
                        SeanceId          = seanceId,
                        ApplicationUserId = currentUserId
                    };
                    _reservedSeatService.Add(currentReservedSeat);
                }
                else
                {
                    if (reservedSeat.ApplicationUserId != currentUserId)
                    {
                        return(new HttpStatusCodeResult(HttpStatusCode.Forbidden));
                    }
                    _reservedSeatService.Delete(reservedSeat);
                }
            }
            return(new HttpStatusCodeResult(HttpStatusCode.OK));;
        }