コード例 #1
0
        // POST: Garages/Delete/5
        //[HttpPost, ActionName("UnParked")]
        //[ValidateAntiForgeryToken]
        public async Task <IActionResult> UnparkVehicle(int?id)//Todo -Add to Remove action for Receipt
        {
            // Unpark. Updates Vehicle and ParkingPlace in db
            UnparkTheVehicle(id);

            //Create Receipt
            ReceiptViewModel receipt = null;

            var vehicle = await dbGarage.Vehicle.FindAsync(id);

            if (vehicle != null)
            {
                var member = dbGarage.Membership
                             .FirstOrDefault(m => m.MembershipId == vehicle.MembershipId);
                receipt = new ReceiptViewModel
                {
                    Id = vehicle.VehicleId,
                    RegistrationNumber = vehicle.RegistrationNumber,
                    MemberNumber       = member.Personnummer,
                    CheckIn            = vehicle.CheckInTime,
                    StayPro            = member.StayPro,
                    IsPro        = VehicleHelper.IsPro(member),
                    MemberSpaces = dbGarage.Vehicle.Where(v => v.IsParked && v.MembershipId == member.MembershipId)
                                   .Select(v => v.VehicleType.Size)
                                   .Count()
                };

                dbGarage.Vehicle.Update(vehicle);
                await dbGarage.SaveChangesAsync();

                TempData["message"] = $"You have unparked your {vehicle.VehicleType}!";
                return(View("Receipt", receipt));
            }
            return(View());
        }