コード例 #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());
        }
コード例 #2
0
        //------------------------------------CONVERSIONS------------------------------------------------------------------
        public ReceiptViewModel ToReceiptViewModel(Vehicle vehicle)
        {
            var owner = _context.Owners.FirstOrDefault(o => o.MemberNumber == vehicle.MemberNumber);

            var model = new ReceiptViewModel
            {
                RegNum        = vehicle.RegNum,
                VehicleType   = vehicle.VehicleType,
                UserName      = owner.UserName,
                ArrivalTime   = vehicle.ArrivalTime,
                DepartureTime = vehicle.DepartureTime
            };

            model.TotalParkedTime = model.DepartureTime - model.ArrivalTime;

            model.Price  = model.TotalParkedTime.Hours * 100;
            model.Price += model.TotalParkedTime.Days * 24 * 100;
            return(model);
        }