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(); }
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); }
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"))); }
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));; }