// GET: Statistics public async Task <IActionResult> Index() { var vehicles = await _context.ParkedVehicle.ToListAsync(); var currentParkedVehicles = vehicles.Where(a => a.TimeStampCheckOut == null).ToList(); double totalCurrentParkedVehicleMinutes = 0; int totalNumberOfWheels = 0; var currentTime = DateTime.Now; currentParkedVehicles.ForEach(a => { totalNumberOfWheels += a.NumberOfWheels; var timeSpan = currentTime - a.TimeStampCheckIn; totalCurrentParkedVehicleMinutes += timeSpan.TotalMinutes; }); var statisticsModel = new StatisticsViewModel() { TotalNumberOfParkedVehicles = currentParkedVehicles.Count, TotalNumberOfWheels = totalNumberOfWheels, CurrentSumMinutes = totalCurrentParkedVehicleMinutes, CurrentSumParkingFeesDisplay = ParkingFee.DisplayAsCurrency(totalCurrentParkedVehicleMinutes) + $" (Minutes: {Math.Round(totalCurrentParkedVehicleMinutes, 2)}) " }; return(View(statisticsModel)); }
public async Task <IActionResult> Receipt(ParkedVehicle vehout) { var vehicleType = await _context.VehicleType.FirstOrDefaultAsync(a => a.Id == vehout.VehicleTypeId); var member = await _context.Member.FirstOrDefaultAsync(a => a.Id == vehout.MemberId); var tin = vehout.TimeStampCheckIn; var tout = vehout.TimeStampCheckOut ?? DateTime.Now; Receipt prReceipt = new Receipt { MemberName = member.Name, LicenseNumber = vehout.LicenseNumber, Type = vehicleType.Name, Color = vehout.Color, Model = vehout.Model, NumberOfWheels = vehout.NumberOfWheels, TimeStampCheckIn = tin, TimeStampCheckOut = tout, //Cash = Math.Round((tout - tin).TotalMinutes), FeeDisplay = ParkingFee.DisplayAsCurrency(tin, tout) }; return(View(prReceipt)); }