Exemplo n.º 1
0
        // 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);
        }
Exemplo n.º 2
0
        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);
        }