예제 #1
0
 public ActionResult Validation(BookingVm inVm)
 {
     if (ModelState.IsValid)
     {
         try
         {
             if (inVm.Name == "1")
             {
                 TempData.SetMessage("پیغام موفق است", MessageType.Success);
             }
             else if (inVm.Name == "2")
             {
                 TempData.SetMessage("پیغام خطا است", MessageType.Error);
             }
             else if (inVm.Name == "3")
             {
                 TempData.SetMessage("پیغام هشدار است", MessageType.Warn);
             }
         }
         catch (Exception ex)
         {
             TempData.SetMessage(ex.Message, MessageType.Error);
         }
     }
     return(View());
 }
 public IActionResult Create([Bind("Id,Car,Customer,Booking")] BookingVm vm)
 {
     if (ModelState.IsValid)
     {
         _bookingRepository.CreateBooking(vm);
         _carRepository.UpdateCarStatus(vm.Booking.CarId);
         return(RedirectToAction(nameof(Index)));
     }
     return(View("Index", vm));
 }
예제 #3
0
        public IActionResult Create()
        {
            BookingVm bookingVm = new BookingVm();

            //Fyller listan med bilarna som finns genom metod
            bookingVm.Cars = FillCarListOfSelectListItems();

            //Fyller listan med kunder som finns genom metod
            bookingVm.Customers = FillCustomerListOfSelectListItems();

            return(View(bookingVm));
        }
예제 #4
0
        public void CreateBooking(BookingVm vm)
        {
            var booking = new Booking();

            booking.Id         = new Guid();
            booking.CarId      = vm.Booking.CarId;
            booking.CustomerId = vm.Booking.CustomerId;
            booking.PickUpDate = vm.Booking.PickUpDate;

            _context.Add(booking);
            _context.SaveChanges();
        }
        public IActionResult Index()
        {
            var bookingVm = new BookingVm();

            var allCustomers    = _customerRepository.GetAllCustomers();
            var listOfCustomers = _customerRepository.AllCustomerList(allCustomers);

            var allCars    = _carRepository.GetAllCars().Where(x => x.Booked == false && x.ForRent == true);
            var listOfCars = _carRepository.AllCarList(allCars);

            bookingVm.AllCustomers = listOfCustomers;
            bookingVm.AllCars      = listOfCars;
            return(View(bookingVm));
        }
예제 #6
0
        public async Task <IActionResult> Create([Bind("BookingId,CustomerId,CarId,StartDate")] Booking booking)
        {
            booking.ReturnDate = booking.StartDate.AddDays(1);
            booking.OnGoing    = true;

            //Hämtar bilen vi har att göra med och sätter den till bokad. Om den redan är bokad så berättar vi det
            booking.Car = _carRepository.GetCarById(booking.CarId);


            if (booking.Car.Booked == false)
            {
                booking.Car.Booked = true;
            }
            else
            {
                ViewBag.Message = "Bilen är redan bokad, vänligen välj en annan";
                BookingVm error_bookingVm = new BookingVm();
                error_bookingVm.Cars      = FillCarListOfSelectListItems();
                error_bookingVm.Customers = FillCustomerListOfSelectListItems();
                return(View(error_bookingVm));
            }

            if (ModelState.IsValid)
            {
                //Lägger till bokningen i systemet
                booking.BookingId = Guid.NewGuid();
                _bookingRepository.AddBooking(booking);

                //Uppdaterar bilen till bokad
                _carRepository.UpdateCar(booking.Car);

                _entityFrameworkRepository.SaveChangesAsync();
                return(RedirectToAction(nameof(Index)));
            }

            BookingVm bookingVm = new BookingVm();

            //Om det misslyckas så hämtar vi bilarna på nytt
            bookingVm.Cars = FillCarListOfSelectListItems();

            ////Om det misslyckas så hämtar vi kunderna på nytt
            bookingVm.Customers = FillCustomerListOfSelectListItems();

            return(View(bookingVm));
        }
        public IActionResult Booking(BookingVm b)
        {
            var TicketList = _context.TicketReservations.
                             AsNoTracking().Include(a => a.BusSchedule).
                             Where(s => s.BusSchedule.BusId == b.BusId && s.BusSchedule.StartingFrom == b.StartingFrom &&
                                   s.BusSchedule.Destination == b.Destination && s.Date == b.Date).ToList();

            if (TicketList.Count() == 0)
            {
                var Seat    = _context.Buses.Where(s => s.BusId == b.BusId).FirstOrDefault();
                var Tickets = GenarateTicket.Ticket(Seat.TotalSeat, b.BookingVmId, b.Date);

                var SeatSent = new List <TicketReservationVm>();
                foreach (var item in Tickets)
                {
                    _context.TicketReservations.Add(item);
                    _context.SaveChanges();
                    TicketReservationVm a = new TicketReservationVm()
                    {
                        TicketReservationId = item.TicketReservationId,
                        ConfirmStatus       = item.ConfirmStatus,
                        Date          = item.Date,
                        AgentId       = item.AgentId,
                        PassengerId   = item.PassengerId,
                        BusScheduleId = item.BusScheduleId,
                        SeatNumber    = item.SeatNumber
                    };
                    if (item.ConfirmStatus == false)
                    {
                        a.MightBeReserve = true;
                    }
                    else
                    {
                        a.MightBeReserve = false;
                    }
                    SeatSent.Add(a);
                }
                var price = _context.BusSchedules.AsNoTracking().
                            Where(s => s.BusScheduleId == Tickets[1].BusScheduleId).FirstOrDefault();
                ViewBag.Price = price.TicketPrice;
                return(View(SeatSent));
            }
            else
            {
                var Ticket = _context.TicketReservations.
                             AsNoTracking().Include(a => a.BusSchedule).
                             Where(s => s.BusSchedule.BusId == b.BusId && s.BusSchedule.StartingFrom == b.StartingFrom &&
                                   s.BusSchedule.Destination == b.Destination &&
                                   s.Date.Month == b.Date.Month &&
                                   s.Date.Year == b.Date.Year &&
                                   s.Date.Day == b.Date.Day).ToList();

                var SeatSent = new List <TicketReservationVm>();
                foreach (var item in Ticket)
                {
                    TicketReservationVm a = new TicketReservationVm()
                    {
                        TicketReservationId = item.TicketReservationId,
                        ConfirmStatus       = item.ConfirmStatus,
                        Date          = item.Date,
                        AgentId       = item.AgentId,
                        PassengerId   = item.PassengerId,
                        BusScheduleId = item.BusScheduleId,
                        SeatNumber    = item.SeatNumber
                    };
                    if (item.ConfirmStatus == false)
                    {
                        a.MightBeReserve = true;
                    }
                    SeatSent.Add(a);
                }
                var price = _context.BusSchedules.AsNoTracking().
                            Where(s => s.BusScheduleId == Ticket[1].BusScheduleId).FirstOrDefault();
                ViewBag.Price = price.TicketPrice;
                return(View(SeatSent));
            }
        }