예제 #1
0
 public IActionResult SaveBooking([Bind("CustomerBirthday, CarId, StartDate, EndDate, CustomerId")] Booking booking)
 {
     if (ModelState.IsValid)
     {
         _context.Add(booking);
         _context.SaveChanges();
         var viewmodel = new CarBookingVM
         {
             AllCars = _context.Cars.Select(RegNumber => new SelectListItem()
             {
                 Text = RegNumber.RegNumber, Value = RegNumber.Id.ToString()
             })
         };
         ViewData["message"] = "Booking accepted!";
         return(View("Rent", viewmodel));
     }
     else
     {
         var viewmodel = new CarBookingVM
         {
             AllCars = _context.Cars.Select(RegNumber => new SelectListItem()
             {
                 Text = RegNumber.RegNumber, Value = RegNumber.Id.ToString()
             })
         };
         ViewData["message"] = "Error, please try again!";
         return(View("Rent", viewmodel));
     }
 }
예제 #2
0
        // GET: Cars/Create
        public IActionResult Create()
        {
            CarBookingVM size = new CarBookingVM();

            size.CarSizes = GetCarSizeToList();
            return(View(size));
        }
예제 #3
0
        public async Task <IActionResult> Edit(Guid id, [Bind("Id,RegNr,CarSize,CurrentDistance,Mileage,Rented")] Car car)
        {
            if (id != car.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    await _carsRepo.Update(car);
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!CarExists(car.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }

            CarBookingVM carBookingVM = new CarBookingVM();

            carBookingVM.CarSizes = GetCarSizeToList();
            carBookingVM.Car      = car;

            return(View(carBookingVM));
        }
예제 #4
0
        // GET: Bookings/Create
        public IActionResult Create()
        {
            CarBookingVM carBookingVM = new CarBookingVM();

            carBookingVM.CarSizes  = GetCarSizeToList();
            carBookingVM.Customers = GetCustomersToList();

            return(View(carBookingVM));
        }
예제 #5
0
        public IActionResult Rent()
        {
            var viewmodel = new CarBookingVM
            {
                AllCars = _context.Cars.Select(RegNumber => new SelectListItem()
                {
                    Text = RegNumber.RegNumber, Value = RegNumber.Id.ToString()
                }),
                AllCustomers = _context.Customers.Select(Customer => new SelectListItem()
                {
                    Text = Customer.FirstName + " " + Customer.LastName, Value = Customer.Id.ToString()
                })
            };

            ViewData["Message"] = "";
            return(View(viewmodel));
        }
예제 #6
0
        public async Task <IActionResult> Create([Bind("Id,Customer,Car,BookingDate")] Booking booking)
        {
            //För at kontrollera så att bilen inte bokas ett datum som redan varit.
            var currentDate = DateTime.Now;

            //Väljer ut första lediga bil som matchar önskad storlek.
            var allCars        = _bookingsRepo.GetAllCars();
            var notRentedCars  = allCars.Where(x => x.Rented == false).ToList();
            var theCarWeChoose = notRentedCars.FirstOrDefault(x => x.CarSize == booking.Car.CarSize);

            //För att fylla på dropdown-listan ifall det inte skulle gå att boka en bil.
            CarBookingVM carBookingVM = new CarBookingVM();

            carBookingVM.CarSizes  = GetCarSizeToList();
            carBookingVM.Customers = GetCustomersToList();


            if (theCarWeChoose == null)
            {
                ViewBag.UserMessageFail = "Tyvärr fanns det inga lediga bilar av den storleken.";

                return(View("Create", carBookingVM));
            }
            else if (currentDate > booking.BookingDate)
            {
                ViewBag.UserMessageFail = "Det går inte att boka ett datum som redan har varit.";

                return(View("Create", carBookingVM));
            }
            else
            {
                booking.Car           = theCarWeChoose;
                booking.Id            = Guid.NewGuid();
                booking.BookingStatus = true;
                booking.Car.Rented    = true;
                await _bookingsRepo.AddBooking(booking);

                theCarWeChoose.Rented = true;

                return(RedirectToAction(nameof(Index)));
            }
        }
예제 #7
0
        // GET: Cars/Edit/5
        public IActionResult Edit(Guid?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var car = _carsRepo.GetCarById(id);

            if (car == null)
            {
                return(NotFound());
            }

            CarBookingVM carBookingVM = new CarBookingVM();

            carBookingVM.CarSizes = GetCarSizeToList();
            carBookingVM.Car      = car;

            return(View(carBookingVM));
        }
예제 #8
0
        // GET: Customers/Details/5
        public IActionResult Details(Guid?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var customer = _customersRepo.GetCustomersById(id);

            if (customer == null)
            {
                return(NotFound());
            }

            CarBookingVM carBookingVM = new CarBookingVM();

            carBookingVM.Customer = customer;

            var theCustomerBookings = _customersRepo.GetCustomerBookings(id);

            carBookingVM.CustomerBookings = theCustomerBookings;

            return(View(carBookingVM));
        }