Example #1
0
        /// <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"));
        }
Example #2
0
        /// <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));
        }