// create a pending order for confirmation //public OrderDto Order(List<SeatSelectionDto> seats, int scheduleId, string customer) //{ // //get schedule info // var schedule = _unitOfWork.ScheduleRepository.GetById(scheduleId); // //create seats // var strSeats = seats.Split(','); // var seatList = (from seat in strSeats // let seatInfo = _unitOfWork.SeatRepository.Get( // filter: s => s.SeatFormatId == schedule.BusType.SeatFormatId && s.SeatNumber == seat).FirstOrDefault() // where seatInfo != null // select new SeatDto // { // SeatNumber = seat, // SeatClass = seatInfo.SeatClass // }).ToList(); // //return the result // return new OrderDto // { // ScheduleId = scheduleId, // BusInfo = schedule.Company.Name + " - " + schedule.BusType.Name, // LocationDetail = schedule.JourneyFrom.Name + " to " + schedule.JourneyTo.Name, // Departure = schedule.DepartureTime, // Seats = seatList, // UserId = customer // }; //} public CartDto AddToCart(CartDto cart, SelectedSeatsDto seats) { // check if the order already exists or we'd have to create a new one var oldOrder = (ICollection <TicketOrderDto>)cart.Orders.Where(o => o.OrderType == OrderType.BusTicket); TicketOrderDto oldTicketOrder; if (oldOrder.Count >= 0) { oldTicketOrder = oldOrder.FirstOrDefault(o => o.ScheduleId == seats.ScheduleId); if (oldTicketOrder != null) { cart.Orders.Remove(oldTicketOrder); oldTicketOrder.Seats.ToList().AddRange(seats.Seats); cart.Orders.Add(oldTicketOrder); } } else { var order = new TicketOrderDto { OrderType = OrderType.BusTicket, ScheduleId = seats.ScheduleId, LocationInfo = seats.LocationInfo, Seats = seats.Seats }; cart.Orders.Add(order); } return(cart); }
public CartDto AddTicket(SelectedSeatsDto seats) { // check if this is the first time the car is initiated if (UserCart.UserId == null && UserCart.Orders == null) { UserCart.UserId = User.Identity.GetUserId(); UserCart.Orders = new Collection <OrderDto>(); } UserCart = _busService.AddToCart(UserCart, seats); return(UserCart); }