/// <summary> /// Fourth step of parking a vehicle at a parking place /// Now member has selected vehicle and parking place. Time to park and save to database /// </summary> /// <param name="parkVehicleSelectParkingPlaceViewModel"></param> /// <returns>View</returns> public async Task <IActionResult> ParkTheVehicle([Bind("ParkingPlaceId", "MembershipId", "VehicleId")] ParkVehicleSelectParkingPlaceViewModel parkVehicleSelectParkingPlaceViewModel) { var vehicle = await dbGarage.Vehicle.Where(i => i.VehicleId == parkVehicleSelectParkingPlaceViewModel.VehicleId).FirstOrDefaultAsync(); var parkingPlace = await dbGarage.ParkingPlace.Where(i => i.ParkingPlaceId == parkVehicleSelectParkingPlaceViewModel.ParkingPlaceId).FirstOrDefaultAsync(); if (vehicle != null && parkingPlace != null) { // Update objects vehicle.IsParked = true; vehicle.CheckInTime = DateTime.Now; vehicle.ParkingPlaceId = parkingPlace.ParkingPlaceId; parkingPlace.IsOccupied = true; parkingPlace.VehicleId = vehicle.VehicleId; await dbGarage.SaveChangesAsync(); TempData["message"] = $"We have parked {vehicle.RegistrationNumber} at parking place {parkingPlace.ParkingPlaceId}"; TempData["typeOfMessage"] = "info"; } else { TempData["message"] = $"We cant park {vehicle.RegistrationNumber}"; TempData["typeOfMessage"] = "error"; } return(RedirectToAction("Index", "Home")); }
/// <summary> /// Third action when you want to park a vehicle /// Now member has selected a vehicle. Now its time to select free parking place /// </summary> /// <param name="VehicleId">Id for selected vehicle</param> /// <returns>View</returns> public async Task <IActionResult> ParkVehicleSelectParkingPlace([Bind("VehicleId")] int VehicleId) { var vehicle = await dbGarage.Vehicle.Include("Membership").Where(v => v.VehicleId == VehicleId).FirstOrDefaultAsync(); var model = new ParkVehicleSelectParkingPlaceViewModel(); model.Vehicle = vehicle; model.VehicleId = vehicle.VehicleId; model.MemberShip = vehicle.Membership; model.MemberName = vehicle.Membership.FirstName + " " + vehicle.Membership.LastName; model.MembershipId = vehicle.Membership.MembershipId; model.FreeParkingPlaces = m_ParkVehicleService.CreateFreeParkingPlaceDropDown(); return(View("ParkVehicleSelectParkingPlace", model)); }