public int?AcceptTicket(OrderDTO orderDTO) { Movie movie = movieRepository.GetByID(orderDTO.MovieId); if (movie == null) { return(null); } List <Seat> seats = new List <Seat>(); foreach (var seatId in orderDTO.SelectedSeats) { Seat seat = seatRepository.GetByID(seatId); if (seat == null) { return(null); } seat.Status = SeatStatus.Taken; seats.Add(seat); } List <SnackOrder> snackOrders = new List <SnackOrder>(); foreach (var snack in orderDTO.Snacks) { Snack orderedSnack = snackRepository.GetByID(snack.Id); if (orderedSnack == null) { return(null); } snackOrders.Add(new SnackOrder { Snack = orderedSnack, Quantity = snack.Quantity, Size = snack.Size }); } Order order = new Order { Movie = movie, Seats = seats, OrderDate = DateTime.UtcNow, Snacks = snackOrders, Screening = movie.ScreeningTimes.FirstOrDefault(s => s.Screening.ToUnixTimeSeconds() == orderDTO.Date.ToUnixTimeSeconds()), Tickets = orderDTO.Tickets }; orderRepository.Insert(order); orderRepository.SaveChanges(); return(order.Id); }