Exemplo n.º 1
0
        public async Task <IActionResult> Register(RegisterBookingVM registerBooking)
        {
            if (!ModelState.IsValid)
            {
                var availableCars = service.TryGetAvailableCars();
                ViewData["AvailableCars"] = availableCars;
                ViewBag.AvailableCars     = availableCars;
                return(View(registerBooking));
            }

            await service.TryRegisterBookingAsync(registerBooking);

            return(RedirectToAction(nameof(Register)));
        }
Exemplo n.º 2
0
        public async Task TryRegisterBookingAsync(RegisterBookingVM viewModel)
        {
            var client = GetClient(viewModel.ClientSSN);

            if (client == null)
            {
                context.Add(new Clients {
                    ClientSsn = viewModel.ClientSSN,
                    FirstName = viewModel.FirstName,
                    LastName  = viewModel.LastName
                });

                await context.SaveChangesAsync();
            }

            context.Add(new Booking
            {
                BookingNumber    = viewModel.BookingNumber,
                ClientSsn        = viewModel.ClientSSN,
                CarType          = viewModel.CarType,
                CarLicenseNumber = viewModel.CarLicenseNumber,
                TimeOfBooking    = viewModel.TimeOfBooking,
                CurrentMileage   = viewModel.CurrentMileage
            });

            var car = GetCar(viewModel.CarLicenseNumber);

            var clientData = GetClient(viewModel.ClientSSN);

            context.Add(new ClientEvents
            {
                ClientId         = clientData.Id,
                CarId            = car.Id,
                EventDescription = $"{clientData.FirstName} {clientData.LastName} picked up car {car.CarLicenseNumber}.",
                TimeOfEvent      = DateTime.Now,
                TypeOfEvent      = "Pickup",
            });

            await context.SaveChangesAsync();

            await SetIsNotAvailable(viewModel.CarLicenseNumber);
        }