예제 #1
0
        public ActionResult EditSeatNumber(decimal orderDetailID)
        {
            var currentOrder = OrderService.GetCurrentOrder();

            if (currentOrder == null)
            {
                return(null);
            }
            var orderDetail = currentOrder
                              .OrderDetails.FirstOrDefault(od => od.OrderDetailID == orderDetailID);

            if (orderDetail == null || orderDetail.Group_ID == null ||
                orderDetail.IsWebinar)
            {
                return(null);
            }
            var groupId   = orderDetail.Group_ID.Value;
            var roomTC    = orderDetail.Group.ClassRoom_TC;
            var reserved  = CartService.GetReservedSeatNumbers(_.List(groupId)).First().Value;
            var available = Enumerable.Range(1, orderDetail.Group.MaxNumOfStudents)
                            .Where(x => !reserved.Contains((short)x)).Select(x => (short)x).ToList();
            var model = new EditSeatNumberVM {
                Available     = available,
                Current       = orderDetail.SeatNumber,
                ClassRoomTC   = roomTC,
                OrderDetailId = orderDetailID
            };
            var response = Response;

            NoCache(response);
            return(BaseViewWithModel(new EditSeatNumberView(), model));
        }
예제 #2
0
        public ActionResult EditSeatNumber(EditSeatNumberVM model)
        {
            var orderDetailId = model.OrderDetailId;
            var orderDetail   = OrderService.GetCurrentOrder()
                                .OrderDetails.FirstOrDefault(od => od.OrderDetailID ==
                                                             orderDetailId);

            if (orderDetail != null)
            {
                orderDetail.SeatNumber = model.Current;
                OrderService.SubmitChanges();
            }
            return(RedirectBack());
        }